[libdazzle] file-transfer: don't follow through symbolic links



commit 69e054f20981cb61d2b355343cf9732da0ee9412
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jan 25 00:29:07 2018 -0800

    file-transfer: don't follow through symbolic links

 src/files/dzl-file-transfer.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/src/files/dzl-file-transfer.c b/src/files/dzl-file-transfer.c
index 1c67ee8..c4a79db 100644
--- a/src/files/dzl-file-transfer.c
+++ b/src/files/dzl-file-transfer.c
@@ -27,6 +27,7 @@
 
 #define QUERY_ATTRS (G_FILE_ATTRIBUTE_STANDARD_NAME"," \
                      G_FILE_ATTRIBUTE_STANDARD_TYPE"," \
+                     G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK"," \
                      G_FILE_ATTRIBUTE_STANDARD_SIZE)
 #define QUERY_FLAGS (G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS)
 
@@ -163,7 +164,7 @@ dzl_file_transfer_class_init (DzlFileTransferClass *klass)
                          "The transfer progress, from 0 to 1",
                          0.0, 1.0, 0.0,
                          (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  
+
   g_object_class_install_properties (object_class, N_PROPS, properties);
 }
 
@@ -225,7 +226,7 @@ dzl_file_transfer_add (DzlFileTransfer *self,
   DZL_EXIT;
 }
 
-DzlFileTransferFlags 
+DzlFileTransferFlags
 dzl_file_transfer_get_flags (DzlFileTransfer *self)
 {
   DzlFileTransferPrivate *priv = dzl_file_transfer_get_instance_private (self);
@@ -286,6 +287,9 @@ file_walk_full (GFile            *parent,
 
   callback (parent, info, user_data);
 
+  if (g_file_info_get_is_symlink (info))
+    return;
+
   if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
     {
       g_autoptr(GFileEnumerator) enumerator = NULL;
@@ -347,7 +351,7 @@ handle_preflight_cb (GFile     *file,
   g_assert (stat_buf != NULL);
 
   file_type = g_file_info_get_file_type (child_info);
-  
+
   if (file_type == G_FILE_TYPE_DIRECTORY)
     {
       stat_buf->n_dirs_total++;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]