summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Assemble.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/Assemble.c b/Assemble.c
index 5ed2dc1..36b2304 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -367,7 +367,8 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
tmpdev->used = 1;
loop:
- tst->ss->free_super(tst);
+ if (tst)
+ tst->ss->free_super(tst);
}
if (mdfd < 0) {
@@ -568,17 +569,18 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
devcnt++;
}
- if (update && strcmp(update, "byteorder")==0)
- st->minor_version = 90;
-
if (devcnt == 0) {
fprintf(stderr, Name ": no devices found for %s\n",
mddev);
- st->ss->free_super(st);
+ if (st)
+ st->ss->free_super(st);
if (must_close) close(mdfd);
return 1;
}
+ if (update && strcmp(update, "byteorder")==0)
+ st->minor_version = 90;
+
st->ss->getinfo_super(st, &info);
clean = info.array.state & 1;