File 0030-Manage-Manage_add-Avoid-NULL-initialization-of-dev_s.patch of Package mdadm.7129

From fbd3e15c0a42b764b7a95fc3b2095c27cec4664a Mon Sep 17 00:00:00 2001
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Date: Wed, 9 Mar 2016 14:51:03 -0500
Subject: [PATCH 255/359] Manage: Manage_add(): Avoid NULL initialization of
 dev_st
References: bsc#1081910

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 <Jes.Sorensen@redhat.com>
Signed-off-by: Coly Li <colyli@suse.de>

---
 Manage.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/Manage.c b/Manage.c
index 5308260..f614396 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)
-- 
2.16.1

openSUSE Build Service is sponsored by