diff options
author | hunt <hunt> | 2007-08-16 12:55:19 +0000 |
---|---|---|
committer | hunt <hunt> | 2007-08-16 12:55:19 +0000 |
commit | 48c53a66e4ffe18158d6f34f288160570609627e (patch) | |
tree | a4c3d839da5cdbd826dc914387759a116516459b /tapset/aux_syscalls.stp | |
parent | 79d4965dd7aa252bd8580f9d828a5a1ee8401649 (diff) | |
download | systemtap-steved-48c53a66e4ffe18158d6f34f288160570609627e.tar.gz systemtap-steved-48c53a66e4ffe18158d6f34f288160570609627e.tar.xz systemtap-steved-48c53a66e4ffe18158d6f34f288160570609627e.zip |
2007-08-16 Martin Hunt <hunt@redhat.com>
* aux_syscalls.stp (__get_argv): Add parameter to
optionally skip the first argv (argv[0]).
(__get_compat_argv): Ditto.
* syscalls.stp (execve): Set args to the whole argv.
For argstr use filename plus argv starting at [1].
(compat_execve): Ditto.
* ppc64/syscalls.stp (sys32_exevve): Ditto.
From Cai Fei <caifei@cn.fujitsu.com>
* syscalls.stp (sts_getpgid): Add pid arg.
Diffstat (limited to 'tapset/aux_syscalls.stp')
-rw-r--r-- | tapset/aux_syscalls.stp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index ec4cbabf..e2c7a432 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -599,7 +599,7 @@ function __fork_flags:string(flags:long) %} /* This function copies an argv from userspace. */ -function __get_argv:string(a:long) +function __get_argv:string(a:long, first:long) %{ /* pure */ char __user *__user *argv = (char __user *__user *)(long)THIS->a; char __user *vstr; @@ -608,7 +608,8 @@ function __get_argv:string(a:long) char buf[80]; char *ptr = buf; - if (argv) + + if (THIS->first && argv) argv++; while (argv != NULL) { @@ -657,7 +658,7 @@ function __get_argv:string(a:long) *str = 0; %} /* This function copies an argv from userspace. */ -function __get_compat_argv:string(a:long) +function __get_compat_argv:string(a:long, first:long) %{ /* pure */ compat_uptr_t __user *__user *argv = (compat_uptr_t __user *__user *)(long)THIS->a; compat_uptr_t __user *vstr; @@ -666,7 +667,7 @@ function __get_compat_argv:string(a:long) char buf[80]; char *ptr = buf; - if (argv) + if (THIS->first && argv) argv++; while (argv != NULL) { |