Author: Martin Poole 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 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);