diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2011-11-01 16:09:24 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-11-02 10:48:53 +1100 |
commit | 518a60f3857b3f7db53756a72364c95c28fa3fd2 (patch) | |
tree | d5bf033eb4256fb2b83f2af9878f74853011e071 | |
parent | 730ae51fddab9052fd2b61c8525ba684655e2f7e (diff) |
Assemble(): don't dup_super() before we need it.
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>
-rw-r--r-- | Assemble.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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) |