diff options
Diffstat (limited to 'source/l/hal/patches/fix-hal-segfault.patch')
-rw-r--r-- | source/l/hal/patches/fix-hal-segfault.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/source/l/hal/patches/fix-hal-segfault.patch b/source/l/hal/patches/fix-hal-segfault.patch new file mode 100644 index 00000000..4e409e31 --- /dev/null +++ b/source/l/hal/patches/fix-hal-segfault.patch @@ -0,0 +1,33 @@ +From fc9571c07a81aba8a8fdaa8014d4034b6456d203 Mon Sep 17 00:00:00 2001 +From: Michael Schroeder <mls@novell.com> +Date: Mon, 23 Aug 2010 16:13:13 +0200 +Subject: [PATCH] fix hal segfault + +Fixed hal segfault. It crashes because strlen() gets called with a +NULL pointer (ppdev_compute_udi calls hal_util_get_last_element +with a NULL pointer). + +bnc#556485 +--- + hald/linux/device.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/hald/linux/device.c b/hald/linux/device.c +index 8570d46..401dc44 100644 +--- a/hald/linux/device.c ++++ b/hald/linux/device.c +@@ -2287,9 +2287,10 @@ ppdev_compute_udi (HalDevice *d) + gchar udi[256]; + const char *name; + +- name = hal_util_get_last_element( hal_device_property_get_string(d, "linux.device_file")); ++ name = hal_device_property_get_string (d, "linux.device_file"); + + if (name) { ++ name = hal_util_get_last_element (name); + hald_compute_udi (udi, sizeof (udi), "/org/freedesktop/Hal/devices/ppdev_%s", name); + } else { + hald_compute_udi (udi, sizeof (udi), "/org/freedesktop/Hal/devices/ppdev"); +-- +1.7.3.2 + |