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>
This commit is contained in:
parent
0e90271e53
commit
2b9aa337af
15
mapfile.c
15
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)
|
static void set_member_info(struct supertype *st, struct mdstat_ent *ent)
|
||||||
{
|
{
|
||||||
char version[strlen(ent->metadata_version)+1];
|
|
||||||
|
|
||||||
st->subarray[0] = '\0';
|
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;
|
return;
|
||||||
|
|
||||||
strcpy(version, ent->metadata_version);
|
if (is_subarray(&ent->metadata_version[9])) {
|
||||||
|
char version[strlen(ent->metadata_version)+1];
|
||||||
if (is_subarray(&version[9])) {
|
char *subarray;
|
||||||
char *subarray = strrchr(version, '/');
|
|
||||||
char *name = &version[10];
|
char *name = &version[10];
|
||||||
|
|
||||||
|
strcpy(version, ent->metadata_version);
|
||||||
|
subarray = strrchr(version, '/');
|
||||||
|
name = &version[10];
|
||||||
|
|
||||||
if (!subarray)
|
if (!subarray)
|
||||||
return;
|
return;
|
||||||
*subarray++ = '\0';
|
*subarray++ = '\0';
|
||||||
|
|
Loading…
Reference in New Issue