summaryrefslogtreecommitdiffstats
path: root/Detail.c
diff options
context:
space:
mode:
authorColy Li <colyli@suse.de>2019-02-12 05:53:18 +0100
committerJes Sorensen <jsorensen@fb.com>2019-02-13 19:12:50 +0100
commite3615ecb5b6ad8eb408296878aad5628e0e27166 (patch)
treeec8033f308012238fef2cfcfbe41e49d0086d3f1 /Detail.c
parentFix spelling typos. (diff)
downloadmdadm-e3615ecb5b6ad8eb408296878aad5628e0e27166.tar.xz
mdadm-e3615ecb5b6ad8eb408296878aad5628e0e27166.zip
Detail.c: do not skip first character when calling xstrdup in Detail()
'Commit b9c9bd9bacaa ("Detail: ensure --export names are acceptable as shell variables")' duplicates mdi->sys_name to sysdev string by, char *sysdev = xstrdup(mdi->sys_name + 1); which skips the first character of mdi->sys_name. Then when running mdadm --detail <md device> --export, the output looks like, MD_DEVICE_ev_sda2_ROLE=1 MD_DEVICE_ev_sda2_DEV=/dev/sda2 The first character of md device (between MD_DEVICE and _ROLE/_DEV) is dropped. The expected output should be, MD_DEVICE_dev_sda2_ROLE=1 MD_DEVICE_dev_sda2_DEV=/dev/sda2 This patch removes the '+ 1' from calling xstrdup() in Detail(), which gets the dropped first character back. Reported-by: Arvin Schnell <aschnell@suse.com> Fixes: b9c9bd9bacaa ("Detail: ensure --export names are acceptable as 4 shell variables") Signed-off-by: Coly Li <colyli@suse.de> Cc: NeilBrown <neilb@suse.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Diffstat (limited to 'Detail.c')
-rw-r--r--Detail.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Detail.c b/Detail.c
index b3e857a7..20ea03ad 100644
--- a/Detail.c
+++ b/Detail.c
@@ -284,7 +284,7 @@ int Detail(char *dev, struct context *c)
struct mdinfo *mdi;
for (mdi = sra->devs; mdi; mdi = mdi->next) {
char *path;
- char *sysdev = xstrdup(mdi->sys_name + 1);
+ char *sysdev = xstrdup(mdi->sys_name);
char *cp;
path = map_dev(mdi->disk.major,