rpms/gvfs/F-12 gvfs-1.4.3-ftp-fixes.patch, NONE, 1.1 gvfs-1.4.3-metadata-free.patch, NONE, 1.1 gvfs.spec, 1.173, 1.174

Alexander Larsson alexl at fedoraproject.org
Tue Dec 1 11:04:17 UTC 2009


Author: alexl

Update of /cvs/pkgs/rpms/gvfs/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv4795

Modified Files:
	gvfs.spec 
Added Files:
	gvfs-1.4.3-ftp-fixes.patch gvfs-1.4.3-metadata-free.patch 
Log Message:
* Tue Dec  1 2009 Alexander Larsson <alexl at redhat.com> - 1.4.2-2
- Backport fixes from git:
- Don't leak metadata strings
- Don't access uninitialized data in ftp backend


gvfs-1.4.3-ftp-fixes.patch:
 gvfsbackendftp.c  |    3 +++
 gvfsftpdircache.c |    6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

--- NEW FILE gvfs-1.4.3-ftp-fixes.patch ---
commit b98c2a479110b37802bcd9c9ecd7f0298bf33c56
Author: Alexander Larsson <alexl at redhat.com>
Date:   Tue Dec 1 11:14:48 2009 +0100

    Ensure timer_cancel is initialized
    
    Otherwise it may be used uninitialized if progress_callback is NULL
    (cherry picked from commit 2f86e533d18c67c5e820d08d53769d82884bff71)

diff --git a/daemon/gvfsbackendftp.c b/daemon/gvfsbackendftp.c
index 41eb493..5dfaa4c 100644
--- a/daemon/gvfsbackendftp.c
+++ b/daemon/gvfsbackendftp.c
@@ -1167,6 +1167,9 @@ ftp_output_stream_splice (GOutputStream *output,
   GCancellable *current, *timer_cancel;
   gulong cancel_cb_id;
 
+  timer_cancel = NULL;
+  cancel_cb_id = 0;
+
   bytes_copied = 0;
   if (progress_callback)
     {

commit eff994cc20d177113989aa3a2160a9a30b70f4bc
Author: Alexander Larsson <alexl at redhat.com>
Date:   Tue Dec 1 11:15:47 2009 +0100

    Handle error case in cache lookup correctly
    
    If we're in error, we should return NULL, not an uninitialized info.
    (cherry picked from commit a17a5d9e3a13c0bf516a0955e79a1620efa00c6d)

diff --git a/daemon/gvfsftpdircache.c b/daemon/gvfsftpdircache.c
index e357edd..dffebbc 100644
--- a/daemon/gvfsftpdircache.c
+++ b/daemon/gvfsftpdircache.c
@@ -216,10 +216,10 @@ g_vfs_ftp_dir_cache_lookup_file_internal (GVfsFtpDirCache *  cache,
       g_vfs_ftp_dir_cache_entry_unref (entry);
     }
 
-  if (!g_vfs_ftp_task_is_in_error (task))
-    info = cache->funcs->lookup_uncached (task, file);
+  if (g_vfs_ftp_task_is_in_error (task))
+    return NULL;
 
-  return info;
+  return cache->funcs->lookup_uncached (task, file);
 }
 
 static GFileInfo *

gvfs-1.4.3-metadata-free.patch:
 client/gdaemonvfs.c |    1 +
 metadata/metatree.c |    2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

--- NEW FILE gvfs-1.4.3-metadata-free.patch ---
commit 58df41d09a14104304b3df3580a61408d262fa02
Author: Alexander Larsson <alexl at redhat.com>
Date:   Tue Dec 1 11:04:36 2009 +0100

    Correctly dup strings in meta_tree_lookup_stringv
    
    Also, make sure to free that in all callers.
    (cherry picked from commit b2984619f1fa9ed1f73bafb3d749f322e17bb605)

diff --git a/client/gdaemonvfs.c b/client/gdaemonvfs.c
index 7479bde..b1b223d 100644
--- a/client/gdaemonvfs.c
+++ b/client/gdaemonvfs.c
@@ -1267,6 +1267,7 @@ _g_daemon_vfs_append_metadata_for_set (DBusMessage *message,
 				       DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &val, g_strv_length (val),
 				       0);
 	}
+      g_strfreev (current);
     }
   else if (type == G_FILE_ATTRIBUTE_TYPE_INVALID)
     {
diff --git a/metadata/metatree.c b/metadata/metatree.c
index 4a0e5f5..2820fb5 100644
--- a/metadata/metatree.c
+++ b/metadata/metatree.c
@@ -1657,7 +1657,7 @@ meta_tree_lookup_stringv   (MetaTree                         *tree,
       num_strings = GUINT32_FROM_BE (stringv->num_strings);
       res = g_new (char *, num_strings + 1);
       for (i = 0; i < num_strings; i++)
-	res[i] = verify_string (tree, stringv->strings[i]);
+	res[i] = g_strdup (verify_string (tree, stringv->strings[i]));
       res[i] = NULL;
     }
 


Index: gvfs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gvfs/F-12/gvfs.spec,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -p -r1.173 -r1.174
--- gvfs.spec	30 Nov 2009 14:45:56 -0000	1.173
+++ gvfs.spec	1 Dec 2009 11:04:17 -0000	1.174
@@ -1,7 +1,7 @@
 Summary: Backends for the gio framework in GLib
 Name: gvfs
 Version: 1.4.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -40,6 +40,10 @@ Patch1: 0001-Add-AFC-backend.patch
 # from upstream
 Patch2: gvfs-1.4.3-smb-queryfs-old-samba.patch
 # from upstream
+Patch3: gvfs-1.4.3-metadata-free.patch
+# from upstream
+Patch4: gvfs-1.4.3-ftp-fixes.patch 
+# from upstream
 Patch12: gvfs-1.4.1-http-suport-stream-query-info.patch
 Patch13: gvfs-1.4.1-http-soup-header-parsing.patch
 
@@ -140,6 +144,8 @@ and iPod Touches to applications using g
 %patch0 -p1 -b .archive-integration
 %patch1 -p1 -b .afc
 %patch2 -p1 -b .samba-queryfs-older
+%patch3 -p1 -b .metadata-free
+%patch4 -p1 -b .ftp-fix
 %patch12 -p1 -b .http-query-info
 %patch13 -p1 -b .http-headers
 
@@ -307,6 +313,11 @@ killall -USR1 gvfsd >&/dev/null || :
 %{_datadir}/gvfs/remote-volume-monitors/afc.monitor
 
 %changelog
+* Tue Dec  1 2009 Alexander Larsson <alexl at redhat.com> - 1.4.2-2
+- Backport fixes from git:
+- Don't leak metadata strings
+- Don't access uninitialized data in ftp backend
+
 * Mon Nov 30 2009 Tomas Bzatek <tbzatek at redhat.com> - 1.4.2-1
 - Update to 1.4.2
 




More information about the fedora-extras-commits mailing list