[PATCH] ui/ncurses: Prevent creation of empty boot entry

Samuel Mendoza-Jonas sam.mj at au1.ibm.com
Mon Feb 2 17:06:51 AEDT 2015


A boot option requires an image path at minimum. If an option is
created without an image, trying to edit the resulting user item causes
a segfault. Prevent the user from creating a boot option without at
least an image path.

Signed-off-by: Samuel Mendoza-Jonas <sam.mj at au1.ibm.com>
---
 ui/ncurses/nc-boot-editor.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/ui/ncurses/nc-boot-editor.c b/ui/ncurses/nc-boot-editor.c
index 409e638..f78da56 100644
--- a/ui/ncurses/nc-boot-editor.c
+++ b/ui/ncurses/nc-boot-editor.c
@@ -173,6 +173,10 @@ static struct pb_boot_data *boot_editor_prepare_data(
 
 	s = widget_textbox_get_value(boot_editor->widgets.image_f);
 	bd->image = conditional_prefix(bd, prefix, s);
+	if (!bd->image) {
+		talloc_free(bd);
+		return NULL;
+	}
 
 	s = widget_textbox_get_value(boot_editor->widgets.initrd_f);
 	bd->initrd = conditional_prefix(bd, prefix, s);
@@ -216,6 +220,11 @@ static void boot_editor_process_key(struct nc_scr *scr, int key)
 	case STATE_SAVE:
 		item = boot_editor->item;
 		bd = boot_editor_prepare_data(boot_editor);
+		if (!bd) {
+			/* Incomplete entry */
+			boot_editor->state = STATE_EDIT;
+			break;
+		}
 		/* fall through */
 	case STATE_CANCEL:
 		boot_editor->on_exit(boot_editor->cui, item, bd);
-- 
2.1.0



More information about the Petitboot mailing list