hal: Branch 'master'

Martin Pitt martin at kemper.freedesktop.org
Wed Mar 3 15:37:59 PST 2010


 hald/linux/probing/probe-hiddev.c        |    3 ++-
 hald/linux/probing/probe-ieee1394-unit.c |    3 ++-
 hald/linux/probing/probe-net-bluetooth.c |    4 ++--
 hald/linux/probing/probe-printer.c       |    3 ++-
 hald/linux/probing/probe-smbios.c        |    3 ++-
 hald/linux/probing/probe-storage.c       |    3 ++-
 hald/linux/probing/probe-video4linux.c   |    3 ++-
 hald/linux/probing/probe-volume.c        |    3 ++-
 8 files changed, 16 insertions(+), 9 deletions(-)

New commits:
commit baa61a879985d63f549854518ef14efd40e62e8c
Author: Peter Jones <pjones at redhat.com>
Date:   Wed Feb 24 11:19:28 2010 -0500

    Make sure dbus_error_init() is called before LIBHAL_FREE_DBUS_ERROR()
    
    If dbus_error_init() is not called before LIBHAL_FREE_DBUS_ERROR() is
    called on that error, then it is uninitialized and may segfault.  This
    means that dbus_error_init() must be called before any "goto out" if
    "out:" calls LIBHAL_FREE_DBUS_ERROR().
    
    Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>

diff --git a/hald/linux/probing/probe-hiddev.c b/hald/linux/probing/probe-hiddev.c
index 45d2084..bffc040 100644
--- a/hald/linux/probing/probe-hiddev.c
+++ b/hald/linux/probing/probe-hiddev.c
@@ -57,11 +57,12 @@ main (int argc, char *argv[])
 	/* assume failure */
 	ret = 1;
 
+	dbus_error_init (&error);
+
 	udi = getenv ("UDI");
 	if (udi == NULL)
 		goto out;
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
 		goto out;
 
diff --git a/hald/linux/probing/probe-ieee1394-unit.c b/hald/linux/probing/probe-ieee1394-unit.c
index 70b0f86..aaa92e2 100644
--- a/hald/linux/probing/probe-ieee1394-unit.c
+++ b/hald/linux/probing/probe-ieee1394-unit.c
@@ -388,6 +388,8 @@ int main (int argc, char *argv[])
 
 	setup_logger ();
 
+	dbus_error_init (&error);
+
 	udi = getenv ("UDI");
 	if (udi == NULL)
 		goto out;
@@ -396,7 +398,6 @@ int main (int argc, char *argv[])
 	if (ieee1394_udi == NULL)
 		goto out;
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
 		goto out;
 
diff --git a/hald/linux/probing/probe-net-bluetooth.c b/hald/linux/probing/probe-net-bluetooth.c
index 0b1b912..e911eea 100644
--- a/hald/linux/probing/probe-net-bluetooth.c
+++ b/hald/linux/probing/probe-net-bluetooth.c
@@ -141,6 +141,8 @@ main (int argc, char *argv[])
 	DBusMessage *reply = NULL;
 	DBusError error;
 
+	dbus_error_init (&error);
+
 	udi = getenv ("UDI");
 	if (udi == NULL)
 		goto out;
@@ -151,8 +153,6 @@ main (int argc, char *argv[])
 
 	HAL_INFO (("Investigating '%s'", iface));
 
-	dbus_error_init (&error);
-
 	if ((conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error)) == NULL)
 		goto out;
 
diff --git a/hald/linux/probing/probe-printer.c b/hald/linux/probing/probe-printer.c
index 91ed7bc..7c6d1c6 100644
--- a/hald/linux/probing/probe-printer.c
+++ b/hald/linux/probing/probe-printer.c
@@ -66,6 +66,8 @@ main (int argc, char *argv[])
 	ret = 1;
 
 	setup_logger ();
+
+	dbus_error_init (&error);
 	
 	udi = getenv ("UDI");
 	if (udi == NULL) {
@@ -73,7 +75,6 @@ main (int argc, char *argv[])
 		goto out;
 	}
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
 		HAL_ERROR (("ctx init failed"));
 		goto out;
diff --git a/hald/linux/probing/probe-smbios.c b/hald/linux/probing/probe-smbios.c
index 0bc9689..15c0d4f 100644
--- a/hald/linux/probing/probe-smbios.c
+++ b/hald/linux/probing/probe-smbios.c
@@ -129,6 +129,8 @@ main (int argc, char *argv[])
 	ret = 1;
 
 	setup_logger ();
+
+	dbus_error_init (&error);
 	
 	udi = getenv ("UDI");
 	if (udi == NULL) {
@@ -136,7 +138,6 @@ main (int argc, char *argv[])
 		goto out;
 	}
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
 		HAL_ERROR (("ctx init failed"));
 		goto out;
diff --git a/hald/linux/probing/probe-storage.c b/hald/linux/probing/probe-storage.c
index 824a82e..dd524ca 100644
--- a/hald/linux/probing/probe-storage.c
+++ b/hald/linux/probing/probe-storage.c
@@ -109,6 +109,8 @@ main (int argc, char *argv[])
 	/* assume failure */
 	ret = 1;
 
+	dbus_error_init (&error);
+
 	if ((udi = getenv ("UDI")) == NULL)
 		goto out;
 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
@@ -127,7 +129,6 @@ main (int argc, char *argv[])
 	else
 		only_check_for_fs = FALSE;
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
 		goto out;
 
diff --git a/hald/linux/probing/probe-video4linux.c b/hald/linux/probing/probe-video4linux.c
index cf913c0..7bc13e8 100644
--- a/hald/linux/probing/probe-video4linux.c
+++ b/hald/linux/probing/probe-video4linux.c
@@ -58,6 +58,8 @@ main (int argc, char *argv[])
 
 	setup_logger ();
 
+	dbus_error_init (&error);
+
 	device_file = getenv ("HAL_PROP_VIDEO4LINUX_DEVICE");
 	if (device_file == NULL)
 		goto out;
@@ -66,7 +68,6 @@ main (int argc, char *argv[])
 	if (udi == NULL)
 		goto out;
 
-	dbus_error_init (&error);
 	ctx = libhal_ctx_init_direct (&error);
 	if (ctx == NULL)
 		goto out;
diff --git a/hald/linux/probing/probe-volume.c b/hald/linux/probing/probe-volume.c
index 0de1b91..7268fff 100644
--- a/hald/linux/probing/probe-volume.c
+++ b/hald/linux/probing/probe-volume.c
@@ -318,6 +318,8 @@ main (int argc, char *argv[])
 	/* assume failure */
 	ret = 1;
 
+	dbus_error_init (&error);
+
 	if ((udi = getenv ("UDI")) == NULL)
 		goto out;
 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
@@ -346,7 +348,6 @@ main (int argc, char *argv[])
 
 	fsusage = getenv ("HAL_PROP_VOLUME_FSUSAGE");
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
 		goto out;
 


More information about the hal-commit mailing list