]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
cmd: lwip/wget: avoid NULL dereference in _set_cacert()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 1 Dec 2025 15:17:24 +0000 (16:17 +0100)
committerJerome Forissier <jerome.forissier@linaro.org>
Thu, 18 Dec 2025 15:27:15 +0000 (16:27 +0100)
Running `wget cacert builtin` leads to a crash in _set_cacert():

    Unhandled exception: Load access fault

Function _set_cacert() dereferences variable wget_info.
We must initialize it before executing the cacert sub-command.

Fixes: d3761a31ef09 ("lwip: split net/lwip/wget.c")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
cmd/lwip/wget.c

index fc9bc11cd83ebd5b0fd242b15dace66cbe8dd985..4883ad61bcee8ea10e780139a09eaac6e6ed23ac 100644 (file)
@@ -180,6 +180,8 @@ int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
        ulong dst_addr;
        char nurl[1024];
 
+       wget_info = &default_wget_info;
+
 #if CONFIG_IS_ENABLED(WGET_CACERT)
        if (argc == 4 && !strncmp(argv[1], "cacert", strlen("cacert")))
                return set_cacert(argv[2], argv[3]);
@@ -214,7 +216,6 @@ int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
        if (parse_legacy_arg(url, nurl, sizeof(nurl)))
                return CMD_RET_FAILURE;
 
-       wget_info = &default_wget_info;
        if (wget_do_request(dst_addr, nurl))
                return CMD_RET_FAILURE;