dabac884b0
OBS-URL: https://build.opensuse.org/package/show/Base:System/mdadm?expand=0&rev=1f6000d46b0cb8516846595a0046a4f9
49 lines
1.4 KiB
Diff
49 lines
1.4 KiB
Diff
From 2b9aa337af7291d3f141322da96c9f667c99d53c Mon Sep 17 00:00:00 2001
|
|
From: NeilBrown <neilb@suse.de>
|
|
Date: Thu, 1 Oct 2009 12:51:04 +1000
|
|
Subject: [PATCH 2/2] Fix null-dereference in set_member_info
|
|
|
|
set_member_info would try to dereference ->metadata_version, without
|
|
checking that it isn't NULL.
|
|
|
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
|
---
|
|
mapfile.c | 15 +++++++++------
|
|
1 files changed, 9 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/mapfile.c b/mapfile.c
|
|
index a3038be..ed59db5 100644
|
|
--- a/mapfile.c
|
|
+++ b/mapfile.c
|
|
@@ -303,19 +303,22 @@ struct map_ent *map_by_name(struct map_ent **map, char *name)
|
|
*/
|
|
static void set_member_info(struct supertype *st, struct mdstat_ent *ent)
|
|
{
|
|
- char version[strlen(ent->metadata_version)+1];
|
|
|
|
st->subarray[0] = '\0';
|
|
|
|
- if (strncmp(ent->metadata_version, "external:", 9) != 0)
|
|
+ if (ent->metadata_version == NULL ||
|
|
+ strncmp(ent->metadata_version, "external:", 9) != 0)
|
|
return;
|
|
|
|
- strcpy(version, ent->metadata_version);
|
|
-
|
|
- if (is_subarray(&version[9])) {
|
|
- char *subarray = strrchr(version, '/');
|
|
+ if (is_subarray(&ent->metadata_version[9])) {
|
|
+ char version[strlen(ent->metadata_version)+1];
|
|
+ char *subarray;
|
|
char *name = &version[10];
|
|
|
|
+ strcpy(version, ent->metadata_version);
|
|
+ subarray = strrchr(version, '/');
|
|
+ name = &version[10];
|
|
+
|
|
if (!subarray)
|
|
return;
|
|
*subarray++ = '\0';
|
|
--
|
|
1.6.3.3
|