Rob Shearman : explorer: Fix memory leak when one or more properties are not present on a hal device .

Alexandre Julliard julliard at winehq.org
Thu Dec 27 08:31:30 CST 2007


Module: wine
Branch: master
Commit: 1f90e8865746eba755a0ed87051abf8ea01cec65
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1f90e8865746eba755a0ed87051abf8ea01cec65

Author: Rob Shearman <rob at codeweavers.com>
Date:   Thu Dec 27 10:01:13 2007 +0000

explorer: Fix memory leak when one or more properties are not present on a hal device.

---

 programs/explorer/hal.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/programs/explorer/hal.c b/programs/explorer/hal.c
index 6b5be46..38b0523 100644
--- a/programs/explorer/hal.c
+++ b/programs/explorer/hal.c
@@ -112,7 +112,10 @@ static WINE_EXCEPTION_FILTER(assert_fault)
 static void new_device( LibHalContext *ctx, const char *udi )
 {
     DBusError error;
-    char *parent, *mount_point, *device, *type;
+    char *parent = NULL;
+    char *mount_point = NULL;
+    char *device = NULL;
+    char *type = NULL;
 
     p_dbus_error_init( &error );
 
@@ -133,15 +136,14 @@ static void new_device( LibHalContext *ctx, const char *udi )
 
     add_dos_device( udi, device, mount_point, type );
 
-    if (type) p_libhal_free_string( type );
-    p_libhal_free_string( parent );
-    p_libhal_free_string( device );
-    p_libhal_free_string( mount_point );
-
     /* add property watch for mount point */
     p_libhal_device_add_property_watch( ctx, udi, &error );
 
 done:
+    if (type) p_libhal_free_string( type );
+    if (parent) p_libhal_free_string( parent );
+    if (device) p_libhal_free_string( device );
+    if (mount_point) p_libhal_free_string( mount_point );
     p_dbus_error_free( &error );
 }
 




More information about the wine-cvs mailing list