diff options
author | Toomas Soome <tsoome@me.com> | 2018-12-03 13:52:28 -0800 |
---|---|---|
committer | Joshua M. Clulow <josh@sysmgr.org> | 2018-12-03 13:52:29 -0800 |
commit | 135ec7c89feffe489942d5c5a37e69f4efb7d7bb (patch) | |
tree | 454281779af52b323be894bf37ab23681f388e1a /usr/src/cmd/boot | |
parent | 9dded1d9015db0b91278731dfec380891ea0eb14 (diff) | |
download | illumos-gate-135ec7c89feffe489942d5c5a37e69f4efb7d7bb.tar.gz |
10014 bootadm: menu_free() is accessing freed memory
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Andy Fiddaman <omnios@citrus-it.net>
Reviewed by: Gergő Mihály Doma <domag02@gmail.com>
Approved by: Joshua M. Clulow <josh@sysmgr.org>
Diffstat (limited to 'usr/src/cmd/boot')
-rw-r--r-- | usr/src/cmd/boot/bootadm/bootadm_loader.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/src/cmd/boot/bootadm/bootadm_loader.c b/usr/src/cmd/boot/bootadm/bootadm_loader.c index 2a2a95c99e..3920355930 100644 --- a/usr/src/cmd/boot/bootadm/bootadm_loader.c +++ b/usr/src/cmd/boot/bootadm/bootadm_loader.c @@ -354,7 +354,9 @@ void menu_free(struct menu_lst *menu) { menu_entry_t *entry; - STAILQ_FOREACH(entry, menu, me_next) { + + while (!STAILQ_EMPTY(menu)) { + entry = STAILQ_FIRST(menu); STAILQ_REMOVE_HEAD(menu, me_next); free(entry->me_title); free(entry->me_type); |