cmd: pxe_utils: sysboot: fix crash if either board or soc are not set.
authorDimitri John Ledkov <xnox@ubuntu.com>
Wed, 21 Apr 2021 11:42:01 +0000 (12:42 +0100)
committerRamon Fried <rfried.dev@gmail.com>
Fri, 18 Jun 2021 08:29:17 +0000 (11:29 +0300)
If the environment does not have "soc" or "board" set, and fdtdir
option is specified in extlinux.conf, the bootloader will crash whilst
dereferencing a null pointer. Add a guard against null soc or
board. Fixes a crash of qemu-riscv64_smode configuration, which does
not have CONFIG_SYS_SOC defined.

Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
cmd/pxe_utils.c

index 71c5af4..9a30629 100644 (file)
@@ -587,6 +587,14 @@ static int label_boot(struct cmd_tbl *cmdtp, struct pxe_label *label)
                                f2 = "-";
                                f3 = env_get("board");
                                f4 = ".dtb";
+                               if (!f1) {
+                                       f1 = "";
+                                       f2 = "";
+                               }
+                               if (!f3) {
+                                       f2 = "";
+                                       f3 = "";
+                               }
                        }
 
                        len = strlen(label->fdtdir);