[Pkg-utopia-maintainers] Bug#562068: [PATCH] linux/probe: don't use error prio init

Sebastian Andrzej Siewior sebastian at breakpoint.cc
Wed Dec 30 11:42:52 UTC 2009


it may happen in the out: case that LIBHAL_FREE_DBUS_ERROR (&error) is
called before the error structure is initialized via 
dbus_error_init (&error). This could lead to a segfault during startup
as seen in dmesg:

|Intel AES-NI instructions are not detected.
|padlock: VIA PadLock not detected.
|hald-probe-inpu[1793]: segfault at 2 ip 00007f656fb68969 sp 00007fff39eeb950 error 4 in libc-2.10.2.so[7f656faf3000+14a000]
|hald-probe-inpu[1796]: segfault at 2 ip 00007fa2c3293969 sp 00007fffd92a5dd0 error 4 in libc-2.10.2.so[7fa2c321e000+14a000]
|hald-probe-inpu[1797]: segfault at 2 ip 00007f1d08ba2969 sp 00007fff34244e30 error 4 in libc-2.10.2.so[7f1d08b2d000+14a000]
|hald-probe-inpu[1799]: segfault at 2 ip 00007f35c0e3d969 sp 00007fffe5ec7ee0 error 4 in libc-2.10.2.so[7f35c0dc8000+14a000]
|hald-probe-inpu[1800]: segfault at 2 ip 00007f931c556969 sp 00007fffe1825b60 error 4 in libc-2.10.2.so[7f931c4e1000+14a000]
|hald-probe-inpu[1801]: segfault at 2 ip 00007f5156d9a969 sp 00007fff4e620af0 error 4 in libc-2.10.2.so[7f5156d25000+14a000]
|RPC: Registered udp transport module.
|RPC: Registered tcp transport module.

What I run into seems to be reported as Debian #562068 [0]. This patch
makes the segfault go away on my machine.

[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562068

Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
---
 hald/linux/probing/probe-input.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hald/linux/probing/probe-input.c b/hald/linux/probing/probe-input.c
index 94e9929..cad47d3 100644
--- a/hald/linux/probing/probe-input.c
+++ b/hald/linux/probing/probe-input.c
@@ -70,6 +70,7 @@ main (int argc, char *argv[])
 	fd = -1;
 
 	setup_logger ();
+	dbus_error_init (&error);
 
 	button_type = getenv ("HAL_PROP_BUTTON_TYPE");
 	if (button_type == NULL)
@@ -96,7 +97,6 @@ main (int argc, char *argv[])
 	if (udi == NULL)
 		goto out;
 
-	dbus_error_init (&error);
 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
 		goto out;
 
-- 
1.6.5.7






More information about the Pkg-utopia-maintainers mailing list