[PATCH] cmd: pxe_utils: sysboot: fix crash if either board or soc are not set.
Dimitri John Ledkov
dimitri.ledkov at canonical.com
Tue May 4 12:25:09 CEST 2021
Hi qemu-board meaintainers,
The below patch affects any boards that do not have either board or
soc variables set.
Of which non-x86 qemu boards are exactly that, preventing to netboot
the same rootfs across multiple boards and qemu at the same time.
Another alternative would be for all non-x86 qemu boards to also define
config SYS_SOC
default "qemu"
However, I fear similar situation might still arise in the future
where some boards lack either SYS_BOARD or SYS_SOC definitions. Thus
even if non-qemu boards are fixed up, the below should still be
applied?
Do you want me to send a separate patch to add SYS_SOC to all qemu boards?
On Wed, Apr 21, 2021 at 3:32 PM Dimitri John Ledkov <xnox at ubuntu.com> wrote:
>
> 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 at ubuntu.com>
> ---
> cmd/pxe_utils.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/cmd/pxe_utils.c b/cmd/pxe_utils.c
> index 71c5af4c25..9a30629e26 100644
> --- a/cmd/pxe_utils.c
> +++ b/cmd/pxe_utils.c
> @@ -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);
> --
> 2.27.0
>
--
Regards,
Dimitri.
More information about the U-Boot
mailing list