summaryrefslogtreecommitdiffstats
path: root/source/l/hal/patches/fix-hal-segfault.patch
blob: 4e409e318834b1905181bf36b8cbf77da360d9f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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