On 10/26/26 10:28 PM, Marek Vasut wrote:
[...]
+ ret = do_tftpb_raw(laddr, fname, server_ip, server_port,
TFTP_TIMEOUT_MSECS);
- if (!fname) {
- log_err("error: no file name\n");
- ret = CMD_RET_FAILURE;
- goto out;
- }
+ if (arg != net_boot_file_name)
+ free(arg);
- if (!laddr) {
- log_err("error: no load address\n");
- ret = CMD_RET_FAILURE;
- goto out;
- }
+ if (ret)
+ return ret;
- if (net_lwip_start(&net, NET_LWIP_ADDR_ENV_STRICT)) {
- ret = CMD_RET_FAILURE;
- goto out;
- }
+ image_load_addr = laddr;
- if (tftp_loop(&net, laddr, fname, srvip, port, TFTP_TIMEOUT_MSECS) < 0)
- ret = CMD_RET_FAILURE;
- else
- image_load_addr = laddr;
-out:
- net_lwip_stop(&net);
- if (arg != net_boot_file_name)
- free(arg);
return ret;
}
The error handling here has to be done slightly differently to pass tests:
"
diff --git a/net/lwip/tftp.c b/net/lwip/tftp.c
index a49d5a72852..97f6ca7d01a 100644
--- a/net/lwip/tftp.c
+++ b/net/lwip/tftp.c
@@ -548,9 +548,9 @@ int do_tftpb(struct cmd_tbl *cmdtp, int flag, int
argc, char *const argv[])
free(arg);
if (ret)
- return ret;
+ return CMD_RET_FAILURE;
image_load_addr = laddr;
- return ret;
+ return ret ? CMD_RET_FAILURE : CMD_RET_SUCCESS;
}
"
I'll send a V2 in a few days.