summaryrefslogtreecommitdiffstats
path: root/source/l/hal/patches/fix-hal-segfault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/hal/patches/fix-hal-segfault.patch')
-rw-r--r--source/l/hal/patches/fix-hal-segfault.patch33
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 000000000..4e409e318
--- /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
+