This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tapsets/18597] long_arg() doesn't correctly handle negative values in 32-on-64 environment


https://sourceware.org/bugzilla/show_bug.cgi?id=18597

--- Comment #2 from Martin Cermak <mcermak at redhat dot com> ---
> =======
> $ git diff tapset/x86_64/registers.stp | nl
>      1  diff --git a/tapset/x86_64/registers.stp
> b/tapset/x86_64/registers.stp
>      2  index d7035e4..e662f9e 100644
>      3  --- a/tapset/x86_64/registers.stp
>      4  +++ b/tapset/x86_64/registers.stp
>      5  @@ -167,7 +167,7 @@ function _stp_arg:long (argnum:long,
> sign_extend:long, truncate:long) %{ /* pure
>      6          default:
>      7                  goto bad_argnum;
>      8          }
>      9  -       if (STAP_ARG_truncate || argsz == sizeof(int)) {
>     10  +       if (STAP_ARG_truncate || _stp_is_compat_task()) {
>     11                  if (STAP_ARG_sign_extend)
>     12                          STAP_RETVALUE = (int64_t)
> __stp_sign_extend32(val);
>     13                  else
>     14  @@ -215,12 +215,7 @@ function ulong_arg:long (argnum:long) {
>     15   }
>     16   
>     17   function longlong_arg:long (argnum:long) {
>     18  -       if (probing_32bit_app()) {
>     19  -               lowbits = _stp_arg(argnum, 0, 1)
>     20  -               highbits = _stp_arg(argnum+1, 0, 1)
>     21  -               return ((highbits << 32) | lowbits)
>     22  -       } else
>     23  -               return _stp_arg(argnum, 0, 0)
>     24  +       return _stp_arg(argnum, 0, 0)
>     25   }
>     26   
>     27   function ulonglong_arg:long (argnum:long) {
> $ 
> =======
> 
> Lines 18-23 are just removal of redundant code that, based on my testing, appears to never be used ... stuff deleted ...

Actually, I am not sure about user scripts. If there is a risk this might break
them, then lines 18-26 (and respective snippets for powerpc and s390) can stay
in place. It is not directly related to the reported issue. Maybe I shouldn't
have mixed these two independent things here.

-- 
You are receiving this mail because:
You are the assignee for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]