From: Sean Anderson Date: Mon, 27 Oct 2025 11:03:42 +0000 (+0000) Subject: semihosting: Fix GDB File-I/O FLEN X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f45b2c352bb72c13a8801805061b31979e3f048;p=thirdparty%2Fqemu.git semihosting: Fix GDB File-I/O FLEN fstat returns 0 on success and -1 on error. Since we have already checked for error, ret must be zero. Therefore, any call to fstat on a non-empty file will return -1/EOVERFLOW. Restore the original logic that just did a byteswap. I don't really know what the intention of the fixed commit was. Fixes: a6300ed6b7 ("semihosting: Split out semihost_sys_flen") Signed-off-by: Sean Anderson Reviewed-by: Alex Bennée Message-ID: <20251027110344.2289945-36-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 6100126796..c5a07cb947 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -316,10 +316,7 @@ common_semi_flen_fstat_cb(CPUState *cs, uint64_t ret, int err) &size, 8, 0)) { ret = -1, err = EFAULT; } else { - size = be64_to_cpu(size); - if (ret != size) { - ret = -1, err = EOVERFLOW; - } + ret = be64_to_cpu(size); } } common_semi_cb(cs, ret, err);