diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ChangeLog | 5 | ||||
-rw-r--r-- | tests/deleted.c | 6 | ||||
-rw-r--r-- | tests/vdsosyms.c | 5 |
3 files changed, 14 insertions, 2 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index b81e83c1..87a7ce76 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2015-01-15 Mark Wielaard <mjw@redhat.com> + + * deleted.c (main): Call prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY). + * vdsosyms.c (main): Use getpid () instead of getppid (). + 2014-12-27 Mark Wielaard <mjw@redhat.com> * addrscopes.c (handle_address): Last address in scope is highpc - 1. diff --git a/tests/deleted.c b/tests/deleted.c index 32a310b6..d071bf79 100644 --- a/tests/deleted.c +++ b/tests/deleted.c @@ -23,6 +23,7 @@ #include <stdio.h> #include <error.h> #include <errno.h> +#include <sys/prctl.h> extern void libfunc (void); @@ -42,6 +43,11 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) assert (!err); err = close (2); assert (!err); + /* Make sure eu-stack -p works on this process even with + "restricted ptrace". */ +#ifdef PR_SET_PTRACER_ANY + prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0); +#endif libfunc (); abort (); } diff --git a/tests/vdsosyms.c b/tests/vdsosyms.c index c1f8d89f..4f12b9a6 100644 --- a/tests/vdsosyms.c +++ b/tests/vdsosyms.c @@ -80,8 +80,9 @@ main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) if (dwfl == NULL) error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1)); - /* Take our parent as "arbitrary" process to inspect. */ - pid_t pid = getppid(); + /* Take ourself as "arbitrary" process to inspect. This should work + even with "restricted ptrace". */ + pid_t pid = getpid(); int result = dwfl_linux_proc_report (dwfl, pid); if (result < 0) |