summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2015-06-29 16:41:28 +0200
committerMartin Pitt <martin.pitt@ubuntu.com>2015-06-29 16:41:28 +0200
commit9dd9c47f5db9b05656a13bee1330f2353b184805 (patch)
treed0cbb1cb466ecdbde10fe9624aef22813668ba3b
parent2705225f0f66eda01e93b226d12e3749b1ece64b (diff)
Fix crash on inaccessible RAID member "state" attribute
g_variant_new() doesn't like NULL pointers for empty arrays, so allocate an empty array if we cannot read the attribute. https://bugs.freedesktop.org/show_bug.cgi?id=91011
-rw-r--r--src/udiskslinuxmdraid.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/udiskslinuxmdraid.c b/src/udiskslinuxmdraid.c
index d7c507a..a314715 100644
--- a/src/udiskslinuxmdraid.c
+++ b/src/udiskslinuxmdraid.c
@@ -476,6 +476,12 @@ udisks_linux_mdraid_update (UDisksLinuxMDRaid *mdraid,
g_strstrip (member_state);
member_state_elements = g_strsplit (member_state, ",", 0);
}
+ else
+ {
+ // g_variant_new() doesn't like NULL pointers for empty
+ // arrays
+ member_state_elements = g_new0 (gchar*, 1);
+ }
snprintf (buf, sizeof (buf), "md/%s/slot", file_name);
member_slot = read_sysfs_attr (raid_device->udev_device, buf);