ddf: free_super should be add_list as well.

It is possible there is data and even an open file descriptor
on 'add_list' - so it must be freed too.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2011-03-14 18:32:38 +11:00
parent 7590d5623b
commit 8a38cb04de
1 changed files with 9 additions and 0 deletions

View File

@ -900,6 +900,15 @@ static void free_super_ddf(struct supertype *st)
free(d->spare);
free(d);
}
while (ddf->add_list) {
struct dl *d = ddf->add_list;
ddf->add_list = d->next;
if (d->fd >= 0)
close(d->fd);
if (d->spare)
free(d->spare);
free(d);
}
free(ddf);
st->sb = NULL;
}