Le 30/04/2022 à 19:53, Richard Henderson a écrit :
Errors are not all negative numbers, but only the top 4k.

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  linux-user/strace.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/linux-user/strace.c b/linux-user/strace.c
index 2cdbf030ba..dc4f810bd3 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -684,12 +684,12 @@ print_ipc(void *cpu_env, const struct syscallname *name,
   */
static bool
-print_syscall_err(abi_long ret)
+print_syscall_err(abi_ulong ret)
  {
      const char *errstr;
qemu_log(" = ");
-    if (ret < 0) {
+    if (ret > (abi_ulong)-4096) {
          errstr = target_strerror(-ret);
          if (errstr) {
              qemu_log("-1 errno=%d (%s)", (int)-ret, errstr);

Perhaps we can use is_error() here?

Thanks,
Laurent


Reply via email to