qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] linux-user/strace.c: Correct errno printing for


From: Riku Voipio
Subject: Re: [Qemu-devel] [PATCH] linux-user/strace.c: Correct errno printing for mmap etc
Date: Wed, 23 Nov 2011 15:15:25 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

On Mon, Nov 21, 2011 at 12:21:19PM +0000, Peter Maydell wrote:
> Correct the printing of errnos for syscalls which are handled
> via print_syscall_ret_addr (mmap, mmap2, brk, shmat): errnos
> are returned as negative returned values at this level, not
> via the host 'errno' variable.
 
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> This applies on top of Alex's [v3] linux-user: fix QEMU_STRACE=1 segfault
> patch. It is fixing a separate bug to that patch, but OTOH it does touch
> only four lines of actual code, all of which were added in that patch.
> Keep it separate or fold it in with that one, I don't mind.

I think in general it is recommended to squash patches that only change lines
added in the previous patch. Otoh it muddies the authorship of the change.
Thus, unless someone objects, I'll que these as separate patches so both
of you get clear credit.

Riku

>  linux-user/strace.c |    9 ++++-----
>  1 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 269481e..05a0d3e 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -1,5 +1,4 @@
>  #include <stdio.h>
> -#include <errno.h>
>  #include <sys/ipc.h>
>  #include <sys/msg.h>
>  #include <sys/sem.h>
> @@ -286,11 +285,11 @@ print_syscall_ret_addr(const struct syscallname *name, 
> abi_long ret)
>  {
>      char *errstr = NULL;
>  
> -    if (ret == -1) {
> -        errstr = target_strerror(errno);
> +    if (ret < 0) {
> +        errstr = target_strerror(-ret);
>      }
> -    if ((ret == -1) && errstr) {
> -        gemu_log(" = -1 errno=%d (%s)\n", errno, errstr);
> +    if (errstr) {
> +        gemu_log(" = -1 errno=%d (%s)\n", (int)-ret, errstr);
>      } else {
>          gemu_log(" = 0x" TARGET_ABI_FMT_lx "\n", ret);
>      }
> -- 
> 1.7.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]