[PATCH 1/3] commands: boot: fix error code/clean up behavior when not booting

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Nov 23 11:14:30 EST 2020


The boot command won't boot if:
  - There are no boot entries: we should still clean up before
    returning an error
  - A menu or list of found entries should be displayed: we should
    exit with success
  - We were doing a dry run: we should propagate the boot entry
    boot method's exit code

Do the necessary.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 commands/boot.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/commands/boot.c b/commands/boot.c
index d7795bde726b..18f4e36ec733 100644
--- a/commands/boot.c
+++ b/commands/boot.c
@@ -97,19 +97,16 @@ static int do_boot(int argc, char *argv[])
 
 	if (list_empty(&entries->entries)) {
 		printf("Nothing bootable found\n");
-		return COMMAND_ERROR;
-	}
-
-	if (do_list) {
-		bootsources_list(entries);
+		ret = COMMAND_ERROR;
 		goto out;
 	}
 
-	if (do_menu) {
+	if (do_list)
+		bootsources_list(entries);
+	else if (do_menu)
 		bootsources_menu(entries, timeout);
-		goto out;
-	}
 
+	ret = 0;
 out:
 	bootentries_free(entries);
 	free(freep);
-- 
2.29.2




More information about the barebox mailing list