From: Jes Sorensen Date: Wed, 9 Mar 2016 19:51:03 +0000 (-0500) Subject: Manage: Manage_add(): Avoid NULL initialization of dev_st X-Git-Tag: mdadm-4.0~104 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbd3e15c0a42b764b7a95fc3b2095c27cec4664a;p=thirdparty%2Fmdadm.git Manage: Manage_add(): Avoid NULL initialization of dev_st dev_st is only ever assigned if array->not_persistent == 0, so move the second use of it into the same scope where the assignment is made. Signed-off-by: Jes Sorensen --- diff --git a/Manage.c b/Manage.c index 53082603..f6143967 100644 --- a/Manage.c +++ b/Manage.c @@ -738,7 +738,7 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv, int raid_slot) { unsigned long long ldsize; - struct supertype *dev_st = NULL; + struct supertype *dev_st; int j; mdu_disk_info_t disc; @@ -843,20 +843,19 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv, * simply re-add it. */ - if (array->not_persistent==0) { + if (array->not_persistent == 0) { dev_st = dup_super(tst); dev_st->ss->load_super(dev_st, tfd, NULL); - } - if (dev_st && dev_st->sb && dv->disposition != 'S') { - int rv = attempt_re_add(fd, tfd, dv, - dev_st, tst, - rdev, - update, devname, - verbose, - array); - dev_st->ss->free_super(dev_st); - if (rv) - return rv; + if (dev_st->sb && dv->disposition != 'S') { + int rv; + + rv = attempt_re_add(fd, tfd, dv, dev_st, tst, + rdev, update, devname, + verbose, array); + dev_st->ss->free_super(dev_st); + if (rv) + return rv; + } } if (dv->disposition == 'M') { if (verbose > 0)