diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-05-07 14:36:51 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-05-09 08:47:54 +0800 |
commit | 038cb53fa8e19592b9c7021176fda194799f1d51 (patch) | |
tree | 61dd1a791c222d7d0cb2711a81feb93a766ae136 /ui | |
parent | 488fa97839822949f855de1efa3cf47756b7f72b (diff) | |
download | petitboot-038cb53fa8e19592b9c7021176fda194799f1d51.zip petitboot-038cb53fa8e19592b9c7021176fda194799f1d51.tar.gz |
ui/nc: Handle cui_opt_data with no boot option more gracefully
We can currently segfault petitboot by escaping from the option editor
(before entering any details), then trying to boot the new, empty
option.
This change adds some sanity checks to prevent a segfault.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/ncurses/nc-cui.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index 342b603..167c2bb 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -109,6 +109,11 @@ static int cui_boot(struct pmenu_item *item) assert(cui->current == &cui->main->scr); pb_log("%s: %s\n", __func__, cod->name); + if (!cod->opt) { + pb_log("%s: missing opt?\n", __func__); + return -1; + } + nc_scr_status_printf(cui->current, "Booting %s...", cod->name); def_prog_mode(); |