summaryrefslogtreecommitdiff
path: root/source/l/hal/patches/fix_segfault_in_mdraid.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/hal/patches/fix_segfault_in_mdraid.diff')
-rw-r--r--source/l/hal/patches/fix_segfault_in_mdraid.diff36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/l/hal/patches/fix_segfault_in_mdraid.diff b/source/l/hal/patches/fix_segfault_in_mdraid.diff
new file mode 100644
index 00000000..88e5eaf6
--- /dev/null
+++ b/source/l/hal/patches/fix_segfault_in_mdraid.diff
@@ -0,0 +1,36 @@
+Author: Martin Poole <mpoole@redhat.com>
+Date: Wed Jul 29 14:20:45 2009 +0100
+
+ Fix a segfault in the mdraid code -- see rh#507782 for more info
+
+ Signed-off-by: Richard Hughes <richard@hughsie.com>
+
+diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c
+--- hal-0.5.11.orig/hald/linux/blockdev.c 2008-05-07 18:23:41.000000000 -0500
++++ hal-0.5.11/hald/linux/blockdev.c 2009-07-30 16:22:40.624837902 -0500
+@@ -851,7 +851,7 @@
+ }
+
+
+-void
++
+ hotplug_event_begin_add_blockdev (const gchar *sysfs_path, const gchar *device_file, gboolean is_partition,
+ HalDevice *parent, void *end_token)
+ {
+@@ -865,6 +865,7 @@
+ gboolean is_device_mapper;
+ gboolean is_md_device;
+ int md_number;
++ char tc;
+
+ is_device_mapper = FALSE;
+ is_fakevolume = FALSE;
+@@ -882,7 +883,7 @@
+ HAL_INFO (("Handling %s as fakevolume - sysfs_path_real=%s", device_file, sysfs_path_real));
+ is_fakevolume = TRUE;
+ sysfs_path_real = hal_util_get_parent_path (sysfs_path);
+- } else if (sscanf (hal_util_get_last_element (sysfs_path), "md%d", &md_number) == 1) {
++ } else if (sscanf (hal_util_get_last_element (sysfs_path), "md%d%c", &md_number, &tc) == 1) {
+ HAL_INFO (("Handling %s as MD device", device_file));
+ is_md_device = TRUE;
+ sysfs_path_real = g_strdup (sysfs_path);