walters / rpms / glib2

Forked from rpms/glib2 4 years ago
Clone
Blob Blame History Raw
From 2b2195bf68bf68837dc9f6b4765d3716694f42b3 Mon Sep 17 00:00:00 2001
From: Alexander Larsson <alexl@redhat.com>
Date: Thu, 26 Nov 2009 15:05:07 +0000
Subject: Pass in the right device to vfs->local_file_add_info for symlinks

We used to pass the path for the symlink, but the device of the target
which is wrong and breaks metadata access.

https://bugzilla.gnome.org/show_bug.cgi?id=593809
---
diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c
index 0a063e9..0eb16db 100644
--- a/gio/glocalfileinfo.c
+++ b/gio/glocalfileinfo.c
@@ -1432,6 +1432,7 @@ _g_local_file_info_get (const char             *basename,
   char *symlink_target;
   GVfs *vfs;
   GVfsClass *class;
+  guint64 device;
 
   info = g_file_info_new ();
 
@@ -1483,7 +1484,9 @@ _g_local_file_info_get (const char             *basename,
       g_free (display_name);
       return NULL;
     }
-  
+
+  device = statbuf.st_dev;
+
 #ifdef S_ISLNK
   is_symlink = S_ISLNK (statbuf.st_mode);
 #else
@@ -1711,7 +1714,7 @@ _g_local_file_info_get (const char             *basename,
     {
       class->local_file_add_info (vfs,
                                   path,
-                                  statbuf.st_dev,
+                                  device,
                                   attribute_matcher,
                                   info,
                                   NULL,
--
cgit v0.8.2