[Pkg-utopia-commits] r253 - packages/experimental/gnome-volume-manager/debian/patches

Sjoerd Simons sjoerd@costa.debian.org
Wed, 22 Jun 2005 13:44:13 +0000


Author: sjoerd
Date: 2005-06-22 13:44:13 +0000 (Wed, 22 Jun 2005)
New Revision: 253

Modified:
   packages/experimental/gnome-volume-manager/debian/patches/06_pmount_crypt.patch
   packages/experimental/gnome-volume-manager/debian/patches/10_improve_mounting.patch
Log:
Fix some memory leaks

Modified: packages/experimental/gnome-volume-manager/debian/patches/06_pmount_crypt.patch
===================================================================
--- packages/experimental/gnome-volume-manager/debian/patches/06_pmount_crypt.patch	2005-06-22 13:01:41 UTC (rev 252)
+++ packages/experimental/gnome-volume-manager/debian/patches/06_pmount_crypt.patch	2005-06-22 13:44:13 UTC (rev 253)
@@ -1,6 +1,6 @@
 diff -ruN gnome-volume-manager-1.3.1-old/configure.in gnome-volume-manager-1.3.1/configure.in
 --- gnome-volume-manager-1.3.1-old/configure.in	2005-03-31 18:27:06.000000000 +0200
-+++ gnome-volume-manager-1.3.1/configure.in	2005-06-22 13:24:54.000000000 +0200
++++ gnome-volume-manager-1.3.1/configure.in	2005-06-22 15:20:29.000000000 +0200
 @@ -82,7 +82,7 @@
  AC_PROG_INTLTOOL([0.27.2])
  AM_GLIB_GNU_GETTEXT
@@ -11,8 +11,8 @@
  AC_SUBST(GVM_LIBS)
  
 diff -ruN gnome-volume-manager-1.3.1-old/src/manager.c gnome-volume-manager-1.3.1/src/manager.c
---- gnome-volume-manager-1.3.1-old/src/manager.c	2005-06-22 13:24:54.000000000 +0200
-+++ gnome-volume-manager-1.3.1/src/manager.c	2005-06-22 13:28:30.000000000 +0200
+--- gnome-volume-manager-1.3.1-old/src/manager.c	2005-06-22 15:20:29.000000000 +0200
++++ gnome-volume-manager-1.3.1/src/manager.c	2005-06-22 15:32:46.000000000 +0200
 @@ -22,6 +22,8 @@
  #include <dbus/dbus-glib.h>
  #include <libhal.h>
@@ -162,37 +162,50 @@
   * gvm_device_mount - use BIN_MOUNT to mount the given device.
   *
   * @return TRUE iff the mount was succesful
-@@ -497,6 +632,15 @@
+@@ -496,6 +631,21 @@
+ 	char *argv[3];
  	GError *error = NULL;
  	gint exit_status;
- 
++	gchar *fsusage = NULL;
++
++	if (libhal_device_property_exists (hal_ctx, udi, "volume.fsusage", NULL)) {
++		fsusage = 
++			libhal_device_get_property_string (hal_ctx, udi, "volume.fusage", NULL);
++	}
++
 +	/* Check for encrypted device */
-+	if (libhal_device_property_exists (hal_ctx, udi, "volume.fsusage", NULL) &&
-+			g_strcasecmp(libhal_device_get_property_string (hal_ctx, udi,
-+			"volume.fsusage", NULL), "crypto") == 0) {
++	if (fsusage && g_strcasecmp(fsusage, "crypto")) {
 +		dbg ("encrypted volume found\n");
 +		gvm_device_mount_encrypted (udi);
++		libhal_free_string(fsusage);
 +		return TRUE;
 +	}
-+
++	libhal_free_string(fsusage);
+ 
  	argv[0] = BIN_MOUNT;
  	argv[1] = udi;
- 	argv[2] = NULL;
-@@ -1184,11 +1328,15 @@
+@@ -1182,14 +1332,17 @@
+ 			continue;
+ 
  		/* only mount if the block device got a sensible filesystem */
- 		if (!libhal_device_property_exists (ctx, udi, 
- 						    "volume.fsusage",
+-		if (!libhal_device_property_exists (ctx, udi, 
+-						    "volume.fsusage",
 -						    NULL) ||
-+						    NULL) || (
-+		    strcmp (libhal_device_get_property_string (ctx, udi, 
-+							       "volume.fsusage",
-+							       NULL), 
-+			    "filesystem") != 0 &&
- 		    strcmp (libhal_device_get_property_string (ctx, udi, 
- 							       "volume.fsusage",
- 							       NULL), 
+-		    strcmp (libhal_device_get_property_string (ctx, udi, 
+-							       "volume.fsusage",
+-							       NULL), 
 -			    "filesystem") != 0) 
-+			    "crypto") != 0))
++		if (libhal_device_property_exists (ctx, udi, "volume.fsusage", NULL)) {
++			gchar *fusage = 
++				libhal_device_get_property_string (ctx, udi, "volume.fsusage", NULL);
++			if(strcmp(fsusage, "filesystem") && strcmp(fsusage, "crypto")) {
++				libhal_string_free(fsusage);
++				continue;
++			}
++			libhal_string_free(fsusage);
++		} else {
  			continue;
- 		drive_udi = hal_device_get_property_string(ctx, udi, "info.parent");
++		}
+ 		drive_udi = libhal_device_get_property_string(ctx, udi, "info.parent", NULL);
    
+ 		do_mount = TRUE;

Modified: packages/experimental/gnome-volume-manager/debian/patches/10_improve_mounting.patch
===================================================================
--- packages/experimental/gnome-volume-manager/debian/patches/10_improve_mounting.patch	2005-06-22 13:01:41 UTC (rev 252)
+++ packages/experimental/gnome-volume-manager/debian/patches/10_improve_mounting.patch	2005-06-22 13:44:13 UTC (rev 253)
@@ -1,6 +1,6 @@
 diff -ruN gnome-volume-manager-1.3.1-old/src/manager.c gnome-volume-manager-1.3.1/src/manager.c
---- gnome-volume-manager-1.3.1-old/src/manager.c	2005-06-22 14:30:51.000000000 +0200
-+++ gnome-volume-manager-1.3.1/src/manager.c	2005-06-22 14:33:38.000000000 +0200
+--- gnome-volume-manager-1.3.1-old/src/manager.c	2005-06-22 15:33:28.000000000 +0200
++++ gnome-volume-manager-1.3.1/src/manager.c	2005-06-22 15:42:37.000000000 +0200
 @@ -488,6 +488,30 @@
  	libhal_free_string (mount_point);
  }
@@ -32,7 +32,7 @@
  /*
   * gvm_device_mount_finished - called back when mount finished.
   *
-@@ -627,20 +651,47 @@
+@@ -627,25 +651,49 @@
   * @return TRUE iff the mount was succesful
   */
  static gboolean
@@ -42,47 +42,49 @@
  	char *argv[3];
  	GError *error = NULL;
  	gint exit_status;
--
+ 	gchar *fsusage = NULL;
 +	gboolean ret = FALSE;
++
 +	/* don't attempt to mount if the automount_hint is false */
 +	if (gvm_is_manual_mount(hal_ctx, udi)) {
-+			dbg("%s has storage.automount_enabled_hint == false, not mounting\n"
-+				, udi);
++		dbg("%s has storage.automount_enabled_hint == false, not mounting\n", udi);
 +		return FALSE;
 +	}
-+		/* don't attempt to mount already mounted volumes */
-+	if (!libhal_device_property_exists (hal_ctx, udi, "volume.is_mounted", NULL) ||
++	/* don't attempt to mount already mounted volumes */
++	if (!libhal_device_property_exists (hal_ctx, udi, "volume.is_mounted", NULL)||
 +			libhal_device_get_property_bool (hal_ctx, udi, "volume.is_mounted", NULL)) {
 +		dbg("%s already mounted, not mounting again\n", udi);
 +		return FALSE;
 +	}
+ 
+ 	if (libhal_device_property_exists (hal_ctx, udi, "volume.fsusage", NULL)) {
+ 		fsusage = 
+ 			libhal_device_get_property_string (hal_ctx, udi, "volume.fusage", NULL);
++	} else {
++		return FALSE
+ 	}
+ 
  	/* Check for encrypted device */
- 	if (libhal_device_property_exists (hal_ctx, udi, "volume.fsusage", NULL) &&
- 			g_strcasecmp(libhal_device_get_property_string (hal_ctx, udi,
- 			"volume.fsusage", NULL), "crypto") == 0) {
+-	if (fsusage && g_strcasecmp(fsusage, "crypto")) {
++	if (g_strcasecmp(fsusage, "crypto")) {
  		dbg ("encrypted volume found\n");
  		gvm_device_mount_encrypted (udi);
 +		if (run_policy) {
-+			mounted_volumes_policy_queue = 
++			mounted_volumes_policy_queue =
 +				g_slist_append (mounted_volumes_policy_queue, g_strdup(udi));
 +		}
+ 		libhal_free_string(fsusage);
  		return TRUE;
  	}
-+		/* only mount if the block device got a sensible filesystem 
-+		 * or when hal couldn't detect the filesystem */
-+		if (!libhal_device_property_exists (hal_ctx, udi, 
-+						"volume.fsusage", NULL) ||
-+				(strcmp (libhal_device_get_property_string (hal_ctx, udi, 
-+							    "volume.fsusage", NULL), "filesystem") != 0 
-+				&& strcmp (libhal_device_get_property_string (hal_ctx, udi,
-+				"volume.fsusage", NULL), "") != 0)) {
-+					dbg("%s isn't a filesystem\n", udi);
-+			return FALSE;
-+		}
++	if (!gstrcasecmp(fsusage, "filesystem")) {
++		dbg("%s isn't a filesystem\n", udi);
++		libhal_free_string(fsusage);
++		return FALSE;
++	}
+ 	libhal_free_string(fsusage);
  
  	argv[0] = BIN_MOUNT;
- 	argv[1] = udi;
-@@ -651,8 +702,16 @@
+@@ -657,8 +705,16 @@
  		warn ("failed to exec " BIN_MOUNT ": %s\n", error->message);
  		return FALSE;
  	}
@@ -101,7 +103,7 @@
  }
  
  /*
-@@ -749,7 +808,7 @@
+@@ -755,7 +811,7 @@
  
  	switch (action) {
  	case MOUNT:
@@ -110,7 +112,7 @@
  		mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi));
  		break;
  	case PLAY:
-@@ -852,7 +911,7 @@
+@@ -858,7 +914,7 @@
  		gvm_ask_mixed (udi);
  	} else if (has_data) {
  		if (config.automount_media) {
@@ -119,7 +121,7 @@
  			mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi));
  		}
  	} else if (is_blank) {
-@@ -919,7 +978,7 @@
+@@ -925,7 +981,7 @@
  		dbg ("Added: %s\n", device);
  		
  		if (config.automount_drives) {
@@ -128,7 +130,7 @@
  			mounted_volumes_policy_queue = g_slist_append (mounted_volumes_policy_queue, g_strdup (udi));
  		}
  	}
-@@ -988,8 +1047,7 @@
+@@ -994,8 +1050,7 @@
  	dbg ("Added: %s\n", device);
  	
  	if (config.automount_drives) {
@@ -138,7 +140,7 @@
  	}
  	
  out:
-@@ -1066,10 +1124,6 @@
+@@ -1072,10 +1127,6 @@
  
  		dbg ("Mounted: %s\n", udi);
  
@@ -149,7 +151,7 @@
  		policy_udi = g_slist_find_custom (mounted_volumes_policy_queue, 
  						  udi, 
  						  g_ascii_strcasecmp);
-@@ -1363,7 +1417,7 @@
+@@ -1368,7 +1419,7 @@
  
  			dbg ("mount_all: mounting %s\n", device_file);