[patch] Fix bug of syscall.lseek's offset

Lai Jiangshan laijs@cn.fujitsu.com
Tue Sep 4 15:27:00 GMT 2007


hi, all

How about the following patch? Is there any problem? 

Lai Jiangshan wrote:
> hi, all
>     "offset = __int32($offset)" was found in syscalls.stp(syscall.lseek),
> it was wrong on IA64. All the other "offset" in tapset are not converted 
> to 32bit integer.
> 
> the following patch can fix this bug
> 
> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
> 
> diff -Nur systemtap-20070818/tapset/syscalls.stp 
> systemtap-20070818-new/tapset/syscalls.stp
> --- systemtap-20070818/tapset/syscalls.stp    2007-08-18 
> 00:05:11.000000000 +0900
> +++ systemtap-20070818-new/tapset/syscalls.stp    2007-08-21 
> 15:53:45.000000000 +0900
> @@ -2008,7 +2008,7 @@
> probe syscall.lseek = kernel.function("sys_lseek") {
>     name = "lseek"
>     fildes = $fd
> -    offset = __int32($offset)
> +    offset = $offset
>     whence = $origin
>     whence_str = _seek_whence_str($origin)
>     argstr = sprintf("%d, %d, %s", $fd, offset, whence_str)
> 
> 
> best regards!
> Lai Jiangshan
> 
>



More information about the Systemtap mailing list