From 11415bc5917215db8f5db7426b8ddf029998fcf2 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 17 May 2014 12:54:37 -0400 Subject: [PATCH] PR16956: add "kernel" to all nd_syscall.* @cast ops We can't take blood from stone - dwarf from a kernel whom we are targeting for non-dwarf processing. So generate dwarf from the headers if necessary. --- tapset/linux/nd_syscalls.stp | 28 ++++++------ tapset/linux/nd_syscalls2.stp | 84 +++++++++++++++++------------------ 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/tapset/linux/nd_syscalls.stp b/tapset/linux/nd_syscalls.stp index 200f6619a..5697080c5 100644 --- a/tapset/linux/nd_syscalls.stp +++ b/tapset/linux/nd_syscalls.stp @@ -67,9 +67,9 @@ probe __nd_syscall.socketcall.accept = kprobe.function("sys_socketcall").call ? asmlinkage() if (int_arg(1) != %{ SYS_ACCEPT %}) next; __args = pointer_arg(2) - sockfd = __int32(user_ulong(&@cast(__args, "ulong")[0])) - addr_uaddr = user_ulong(&@cast(__args, "ulong")[1]) - addrlen_uaddr = user_ulong(&@cast(__args, "ulong")[2]) + sockfd = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[0])) + addr_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[1]) + addrlen_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[2]) } probe __nd_syscall.compat_socketcall.accept = kprobe.function("compat_sys_socketcall").call ? @@ -77,9 +77,9 @@ probe __nd_syscall.compat_socketcall.accept = asmlinkage() if (int_arg(1) != %{ SYS_ACCEPT %}) next; __args = pointer_arg(2) - sockfd = user_int(&@cast(__args, "unsigned int")[0]) - addr_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int")[2]) + sockfd = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + addr_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) } probe nd_syscall.accept.return = __nd_syscall.accept.return ?, __nd_syscall.socketcall.accept.return ? @@ -129,10 +129,10 @@ probe __nd_syscall.socketcall.accept4 = kprobe.function("sys_socketcall").call ? asmlinkage() if (int_arg(1) != %{ SYS_ACCEPT4 %}) next; __args = pointer_arg(2) - sockfd = __int32(user_ulong(&@cast(__args, "ulong")[0])) - addr_uaddr = user_ulong(&@cast(__args, "ulong")[1]) - addrlen_uaddr = user_ulong(&@cast(__args, "ulong")[2]) - flags = __int32(user_ulong(&@cast(__args, "ulong")[3])) + sockfd = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[0])) + addr_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[1]) + addrlen_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[2]) + flags = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[3])) } probe __nd_syscall.compat_socketcall.accept4 = kprobe.function("compat_sys_socketcall").call ? @@ -140,10 +140,10 @@ probe __nd_syscall.compat_socketcall.accept4 = asmlinkage() if (int_arg(1) != %{ SYS_ACCEPT4 %}) next; __args = pointer_arg(2) - sockfd = user_int(&@cast(__args, "unsigned int")[0]) - addr_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int")[2]) - flags = user_int(&@cast(__args, "unsigned int")[3]) + sockfd = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + addr_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) + flags = user_int(&@cast(__args, "unsigned int", "kernel")[3]) } probe nd_syscall.accept4.return = __nd_syscall.accept4.return ?, __nd_syscall.socketcall.accept4.return ? diff --git a/tapset/linux/nd_syscalls2.stp b/tapset/linux/nd_syscalls2.stp index 63c39f41c..a43c75b25 100644 --- a/tapset/linux/nd_syscalls2.stp +++ b/tapset/linux/nd_syscalls2.stp @@ -951,10 +951,10 @@ probe __nd_syscall.socketcall.recv = kprobe.function("sys_socketcall").call ? asmlinkage() if (int_arg(1) != %{ SYS_RECV %}) next; __args = pointer_arg(2) - s = __int32(user_ulong(&@cast(__args, "ulong")[0])) - buf_uaddr = user_ulong(&@cast(__args, "ulong")[1]) - len = user_ulong(&@cast(__args, "ulong")[2]) - flags = __uint32(user_ulong(&@cast(__args, "ulong")[3])) + s = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[0])) + buf_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[1]) + len = user_ulong(&@cast(__args, "ulong", "kernel")[2]) + flags = __uint32(user_ulong(&@cast(__args, "ulong", "kernel")[3])) } probe __nd_syscall.compat_socketcall.recv = kprobe.function("compat_sys_socketcall").call ? @@ -962,10 +962,10 @@ probe __nd_syscall.compat_socketcall.recv = asmlinkage() if (int_arg(1) != %{ SYS_RECV %}) next; __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - buf_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - len = user_uint32(&@cast(__args, "unsigned int")[2]) - flags = user_uint32(&@cast(__args, "unsigned int")[3]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + buf_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + len = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[3]) } probe __nd_syscall.recv = kprobe.function("sys_recv").call ? { @@ -1021,12 +1021,12 @@ probe __nd_syscall.socketcall.recvfrom = asmlinkage() if (int_arg(1) != %{ SYS_RECVFROM %}) next __args = pointer_arg(2) - s = __int32(user_ulong(&@cast(__args, "ulong")[0])) - buf_uaddr = user_ulong(&@cast(__args, "ulong")[1]) - len = user_ulong(&@cast(__args, "ulong")[2]) - flags = __uint32(user_ulong(&@cast(__args, "ulong")[3])) - addr_uaddr = user_ulong(&@cast(__args, "ulong")[4]) - addrlen_uaddr = __uint32(user_ulong(&@cast(__args, "ulong")[5])) + s = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[0])) + buf_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[1]) + len = user_ulong(&@cast(__args, "ulong", "kernel")[2]) + flags = __uint32(user_ulong(&@cast(__args, "ulong", "kernel")[3])) + addr_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[4]) + addrlen_uaddr = __uint32(user_ulong(&@cast(__args, "ulong", "kernel")[5])) } probe __nd_syscall.compat_socketcall.recvfrom = kprobe.function("compat_sys_socketcall").call ? @@ -1034,12 +1034,12 @@ probe __nd_syscall.compat_socketcall.recvfrom = asmlinkage() if (int_arg(1) != %{ SYS_RECVFROM %}) next __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - buf_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - len = user_uint32(&@cast(__args, "unsigned int")[2]) - flags = user_uint32(&@cast(__args, "unsigned int")[3]) - addr_uaddr = user_uint32(&@cast(__args, "unsigned int")[4]) - addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int")[5]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + buf_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + len = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[3]) + addr_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[4]) + addrlen_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[5]) } probe __nd_syscall.recvfrom = kprobe.function("sys_recvfrom").call ? { @@ -1177,9 +1177,9 @@ probe nd_syscall.compat_sys_recvmsg = if (int_arg(1) != %{ SYS_RECVMSG %}) next; name = "recvmsg" __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - msg_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - flags = user_uint32(&@cast(__args, "unsigned int")[2]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + msg_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) flags_str = _msg_flags_str(flags) argstr = sprintf("%d, %p, %s", s, msg_uaddr, _msg_flags_str(flags)) } @@ -2121,9 +2121,9 @@ probe nd_syscall.compat_sys_sendmsg = if (int_arg(1) != %{ SYS_SENDMSG %}) next; name = "sendmsg" __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - msg_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - flags = user_uint32(&@cast(__args, "unsigned int")[2]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + msg_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) flags_str = _msg_flags_str(flags) argstr = sprintf("%d, %p, %s", s, msg_uaddr, _msg_flags_str(flags)) } @@ -2171,10 +2171,10 @@ probe __nd_syscall.compat_socketcall.sendmmsg = asmlinkage() if (int_arg(1) != %{ SYS_SENDMMSG %}) next; __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - mmsg_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - vlen = user_uint32(&@cast(__args, "unsigned int")[2]) - flags = user_uint32(&@cast(__args, "unsigned int")[3]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + mmsg_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + vlen = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[3]) } probe __nd_syscall.compat_sendmmsg = kprobe.function("compat_sys_sendmmsg").call ? @@ -2250,12 +2250,12 @@ probe __nd_syscall.socketcall.sendto = kprobe.function("sys_socketcall").call ? asmlinkage() if (int_arg(1) != %{ SYS_SENDTO %}) next; __args = pointer_arg(2) - s = __int32(user_ulong(&@cast(__args, "ulong")[0])) - buf_uaddr = user_ulong(&@cast(__args, "ulong")[1]) - len = user_ulong(&@cast(__args, "ulong")[2]) - flags = __uint32(user_ulong(&@cast(__args, "ulong")[3])) - to_uaddr = user_ulong(&@cast(__args, "ulong")[4]) - tolen = __uint32(user_ulong(&@cast(__args, "ulong")[5])) + s = __int32(user_ulong(&@cast(__args, "ulong", "kernel")[0])) + buf_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[1]) + len = user_ulong(&@cast(__args, "ulong", "kernel")[2]) + flags = __uint32(user_ulong(&@cast(__args, "ulong", "kernel")[3])) + to_uaddr = user_ulong(&@cast(__args, "ulong", "kernel")[4]) + tolen = __uint32(user_ulong(&@cast(__args, "ulong", "kernel")[5])) } probe __nd_syscall.compat_socketcall.sendto = kprobe.function("compat_sys_socketcall").call ? @@ -2263,12 +2263,12 @@ probe __nd_syscall.compat_socketcall.sendto = asmlinkage() if (int_arg(1) != %{ SYS_SENDTO %}) next; __args = pointer_arg(2) - s = user_int(&@cast(__args, "unsigned int")[0]) - buf_uaddr = user_uint32(&@cast(__args, "unsigned int")[1]) - len = user_uint32(&@cast(__args, "unsigned int")[2]) - flags = user_uint32(&@cast(__args, "unsigned int")[3]) - to_uaddr = user_uint32(&@cast(__args, "unsigned int")[4]) - tolen = user_uint32(&@cast(__args, "unsigned int")[5]) + s = user_int(&@cast(__args, "unsigned int", "kernel")[0]) + buf_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[1]) + len = user_uint32(&@cast(__args, "unsigned int", "kernel")[2]) + flags = user_uint32(&@cast(__args, "unsigned int", "kernel")[3]) + to_uaddr = user_uint32(&@cast(__args, "unsigned int", "kernel")[4]) + tolen = user_uint32(&@cast(__args, "unsigned int", "kernel")[5]) } probe nd_syscall.sendto.return = __nd_syscall.sendto.return ?, __nd_syscall.socketcall.sendto.return ? -- 2.43.5