]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Assemble(): don't dup_super() before we need it.
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 1 Nov 2011 15:09:24 +0000 (16:09 +0100)
committerNeilBrown <neilb@suse.de>
Tue, 1 Nov 2011 23:48:53 +0000 (10:48 +1100)
Avoid resource leak in case we bail loop early

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Assemble.c

index 05710f5364ccdac286d6d4fa8dc7dbbb73d85bd8..3c8e74dcaff978f205e0c41b40c09b0ecb019178 100644 (file)
@@ -293,7 +293,7 @@ int Assemble(struct supertype *st, char *mddev,
                char *devname = tmpdev->devname;
                int dfd;
                struct stat stb;
-               struct supertype *tst = dup_super(st);
+               struct supertype *tst;
                struct dev_policy *pol = NULL;
                int found_container = 0;
 
@@ -306,6 +306,8 @@ int Assemble(struct supertype *st, char *mddev,
                        continue;
                }
 
+               tst = dup_super(st);
+
                dfd = dev_open(devname, O_RDONLY|O_EXCL);
                if (dfd < 0) {
                        if (report_missmatch)