From: Dmitry V. Levin Date: Fri, 4 Dec 2015 16:42:30 +0000 (+0000) Subject: x32: fix decoding of i386 personality lseek syscall X-Git-Tag: v4.11~68 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a5aa080ae68a95e2fbc3466b242987fd2879b28a;p=strace x32: fix decoding of i386 personality lseek syscall On x32, tcp->ext_arg is not initialized for i386 personality, so tcp->u_arg has to be used instead. * lseek.c (SYS_FUNC(lseek)) [X32]: Handle "current_personality == 1" case. --- diff --git a/lseek.c b/lseek.c index f02158e7..8d8f21b9 100644 --- a/lseek.c +++ b/lseek.c @@ -16,6 +16,12 @@ SYS_FUNC(lseek) int whence; printfd(tcp, tcp->u_arg[0]); +# ifdef X32 + /* tcp->ext_arg is not initialized for i386 personality */ + if (current_personality == 1) + offset = tcp->u_arg[1]; + else +# endif offset = tcp->ext_arg[1]; whence = tcp->u_arg[2]; if (whence == SEEK_SET)