From: Marek Vasut Date: Mon, 20 Apr 2026 01:23:07 +0000 (+0200) Subject: common: update: Fix TFTP return value handling X-Git-Tag: v2026.07-rc1~16 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=d64c4a69585aa096c693c0b7ec4e6e04333fc45f;p=thirdparty%2Fu-boot.git common: update: Fix TFTP return value handling The net_loop() returns 1 on success, but update_load() returns 0 on success. Do not assign rv which is the return value of update_load() to net_loop(), instead assign net_loop() return value to a temporary variable and then update rv only if the temporary variable is negative. This way the update_load() now correctly returns 0 on tftp success and 1 only on failure. Signed-off-by: Marek Vasut --- diff --git a/common/update.c b/common/update.c index 0bafffede9e..06e53cbd402 100644 --- a/common/update.c +++ b/common/update.c @@ -32,7 +32,7 @@ static uchar *saved_prot_info; #endif static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr) { - int rv; + int rv, ret; ulong saved_timeout_msecs; int saved_timeout_count; char *saved_netretry, *saved_bootfile; @@ -54,9 +54,9 @@ static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr) /* download the update file */ image_load_addr = addr; copy_filename(net_boot_file_name, filename, sizeof(net_boot_file_name)); - rv = net_loop(TFTPGET); + ret = net_loop(TFTPGET); - if (rv < 0) + if (ret < 0) rv = 1; else flush_cache(addr, net_boot_file_size);