1
0
Fork 0

Merging upstream version 4.2+20230304.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-14 06:04:36 +01:00
parent 2bc61998f8
commit 61538669fd
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
4 changed files with 19 additions and 7 deletions

View file

@ -303,6 +303,7 @@ int Detail(char *dev, struct context *c)
if (path)
printf("MD_DEVICE_%s_DEV=%s\n",
sysdev, path);
free(sysdev);
}
}
goto out;

View file

@ -1592,15 +1592,20 @@ static unsigned int get_vd_num_of_subarray(struct supertype *st)
sra = sysfs_read(-1, st->devnm, GET_VERSION);
if (!sra || sra->array.major_version != -1 ||
sra->array.minor_version != -2 ||
!is_subarray(sra->text_version))
!is_subarray(sra->text_version)) {
if (sra)
sysfs_free(sra);
return DDF_NOTFOUND;
}
sub = strchr(sra->text_version + 1, '/');
if (sub != NULL)
vcnum = strtoul(sub + 1, &end, 10);
if (sub == NULL || *sub == '\0' || *end != '\0' ||
vcnum >= be16_to_cpu(ddf->active->max_vd_entries))
vcnum >= be16_to_cpu(ddf->active->max_vd_entries)) {
sysfs_free(sra);
return DDF_NOTFOUND;
}
return vcnum;
}

View file

@ -713,12 +713,12 @@ static struct sys_dev* find_disk_attached_hba(int fd, const char *devname)
for (elem = list; elem; elem = elem->next)
if (path_attached_to_hba(disk_path, elem->path))
return elem;
break;
if (disk_path != devname)
free(disk_path);
return NULL;
return elem;
}
static int find_intel_hba_capability(int fd, struct intel_super *super,
@ -4515,6 +4515,7 @@ static int load_imsm_mpb(int fd, struct intel_super *super, char *devname)
MIGR_REC_BUF_SECTORS*MAX_SECTOR_SIZE) != 0) {
pr_err("could not allocate migr_rec buffer\n");
free(super->buf);
super->buf = NULL;
return 2;
}
super->clean_migration_record_by_mdmon = 0;

11
util.c
View file

@ -421,14 +421,19 @@ int parse_layout_10(char *layout)
int parse_layout_faulty(char *layout)
{
int ln, mode;
char *m;
if (!layout)
return -1;
/* Parse the layout string for 'faulty' */
int ln = strcspn(layout, "0123456789");
char *m = xstrdup(layout);
int mode;
ln = strcspn(layout, "0123456789");
m = xstrdup(layout);
m[ln] = 0;
mode = map_name(faultylayout, m);
free(m);
if (mode == UnSet)
return -1;