rpms/gvfs/devel gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch, NONE, 1.1 gvfs.spec, 1.116, 1.117

David Zeuthen davidz at fedoraproject.org
Thu Mar 19 16:13:26 UTC 2009


Author: davidz

Update of /cvs/pkgs/rpms/gvfs/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13824

Modified Files:
	gvfs.spec 
Added Files:
	gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch 
Log Message:
* Wed Mar 18 2009 David Zeuthen <davidz at redhat.com> - 1.2.0-2
- GNOME #575728 - crash in Open Folder: mounting a crypto volume



gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch:

--- NEW FILE gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch ---
--- trunk/common/gvfsdaemonprotocol.h	2009/02/27 12:59:47	2257
+++ trunk/common/gvfsdaemonprotocol.h	2009/03/18 21:03:15	2342
@@ -73,6 +73,7 @@
 #define G_VFS_DBUS_MOUNT_OPERATION_INTERFACE "org.gtk.vfs.MountOperation"
 #define G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_PASSWORD "askPassword"
 #define G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_QUESTION "askQuestion"
+#define G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED "aborted"
 
 /* Implemented by the spawner of a process, the spawned process sends the
    spawned message (with noreply) when it has spawned and gotten a dbus id */
--- trunk/common/gmountoperationdbus.c	2008/08/25 13:27:36	1907
+++ trunk/common/gmountoperationdbus.c	2009/03/18 21:03:15	2342
@@ -51,6 +51,8 @@
 						       DBusMessage         *message);
 static void              mount_op_ask_question        (GMountOperationDBus *op_dbus,
 						       DBusMessage         *message);
+static void              mount_op_aborted             (GMountOperationDBus *op_dbus,
+						       DBusMessage         *message);
 
 static void
 g_mount_operation_dbus_free (GMountOperationDBus *op_dbus)
@@ -131,6 +133,10 @@
 					G_VFS_DBUS_MOUNT_OPERATION_INTERFACE,
 					G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_QUESTION))
     mount_op_ask_question (op_dbus, message);
+  else if (dbus_message_is_method_call (message,
+					G_VFS_DBUS_MOUNT_OPERATION_INTERFACE,
+					G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED))
+    mount_op_aborted (op_dbus, message);
   else
     return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 
@@ -322,3 +328,10 @@
   
   dbus_free_string_array (choices);
 }
+
+static void
+mount_op_aborted (GMountOperationDBus *op_dbus,
+		  DBusMessage         *message)
+{
+  g_signal_emit_by_name (op_dbus->op, "aborted");
+}
--- trunk/common/gmountsource.c	2008/09/23 19:16:06	2021
+++ trunk/common/gmountsource.c	2009/03/18 21:03:15	2342
@@ -433,8 +433,8 @@
   handled = g_mount_source_ask_password_finish (source,
                                                 res,
                                                 &aborted,
-                                                &username,
                                                 &password,
+                                                &username,
                                                 &domain,
 						NULL,
 						&password_save);
@@ -475,6 +475,7 @@
                                      flags,
 				     op_ask_password_reply,
 				     g_object_ref (op));
+  g_signal_stop_emission_by_name (op, "ask_password");
   return TRUE;
 }
 
@@ -695,9 +696,41 @@
 				     n_choices,
 				     op_ask_question_reply,
 				     g_object_ref (op));
+  g_signal_stop_emission_by_name (op, "ask_question");
   return TRUE;
 }
 
+static gboolean
+op_aborted (GMountOperation *op,
+	    GMountSource    *source)
+{
+  DBusMessage *message;
+  DBusConnection *connection;
+
+  /* If no dbus id specified, reply that we weren't handled */
+  if (source->dbus_id[0] == 0)
+    goto out;
+
+  connection = dbus_bus_get (DBUS_BUS_SESSION, NULL);
+  if (connection == NULL)
+    goto out;
+  
+  message = dbus_message_new_method_call (source->dbus_id,
+					  source->obj_path,
+					  G_VFS_DBUS_MOUNT_OPERATION_INTERFACE,
+					  G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED);
+
+  if (message)
+    {
+      dbus_connection_send (connection, message, NULL);
+      dbus_message_unref (message);
+    }
+
+ out:
+  return TRUE;
+}
+
+
 GMountOperation *
 g_mount_source_get_operation (GMountSource *mount_source)
 {
@@ -711,6 +744,7 @@
 
   g_signal_connect (op, "ask_password", (GCallback)op_ask_password, mount_source);
   g_signal_connect (op, "ask_question", (GCallback)op_ask_question, mount_source);
+  g_signal_connect (op, "aborted", (GCallback)op_aborted, mount_source);
 
   return op;
 }


Index: gvfs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gvfs/devel/gvfs.spec,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -r1.116 -r1.117
--- gvfs.spec	16 Mar 2009 12:46:05 -0000	1.116
+++ gvfs.spec	19 Mar 2009 16:12:55 -0000	1.117
@@ -1,7 +1,7 @@
 Summary: Backends for the gio framework in GLib
 Name: gvfs
 Version: 1.2.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -40,6 +40,8 @@
 # http://bugzilla.gnome.org/show_bug.cgi?id=573826
 Patch4: gvfs-1.1.7-gdu-computer-expose-devices.patch
 
+# http://bugzilla.gnome.org/show_bug.cgi?id=575728
+Patch5: gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch
 
 %description
 The gvfs package provides backend implementations for the gio
@@ -125,6 +127,7 @@
 %patch2 -p0 -b .gdu
 %patch3 -p1 -b .gdu-volumes-typo
 %patch4 -p1 -b .computer-gdu
+%patch5 -p1 -b .mount-op
 
 %build
 
@@ -268,6 +271,9 @@
 
 
 %changelog
+* Wed Mar 18 2009 David Zeuthen <davidz at redhat.com> - 1.2.0-2
+- GNOME #575728 - crash in Open Folder: mounting a crypto volume
+
 * Mon Mar 16 2009 Tomas Bzatek <tbzatek at redhat.com> - 1.2.0-1
 - Update to 1.2.0
 




More information about the fedora-extras-commits mailing list