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>
free(d->spare);
free(d);
}
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;
}
free(ddf);
st->sb = NULL;
}