summaryrefslogtreecommitdiffstats
path: root/runtime/staprun/staprun.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-12-03 15:33:17 -0800
committerRoland McGrath <roland@redhat.com>2008-12-03 18:15:36 -0800
commitaad1a79ccc20268ba399f0e025f203e968978350 (patch)
treee8c778154f6e702378056019d6eecca470062041 /runtime/staprun/staprun.c
parentc1f7a8464fa9054e6ee06e05451f555b5504dd71 (diff)
downloadsystemtap-steved-aad1a79ccc20268ba399f0e025f203e968978350.tar.gz
systemtap-steved-aad1a79ccc20268ba399f0e025f203e968978350.tar.xz
systemtap-steved-aad1a79ccc20268ba399f0e025f203e968978350.zip
PR7063: honor SYSTEMTAP_STAPRUN and SYSTEMTAP_STAPIO environment variables
Diffstat (limited to 'runtime/staprun/staprun.c')
-rw-r--r--runtime/staprun/staprun.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/runtime/staprun/staprun.c b/runtime/staprun/staprun.c
index 9d647675..b568c867 100644
--- a/runtime/staprun/staprun.c
+++ b/runtime/staprun/staprun.c
@@ -242,6 +242,15 @@ int main(int argc, char **argv)
exit(-1);
}
+ if (getuid() != 0) {
+ rc = unsetenv("SYSTEMTAP_STAPRUN") ||
+ unsetenv("SYSTEMTAP_STAPIO");
+ if (rc) {
+ _perr("unsetenv failed");
+ exit(-1);
+ }
+ }
+
setup_signals();
parse_args(argc, argv);
@@ -283,7 +292,7 @@ int main(int argc, char **argv)
if (init_staprun())
exit(1);
- argv[0] = PKGLIBDIR "/stapio";
+ argv[0] = getenv ("SYSTEMTAP_STAPIO") ?: PKGLIBDIR "/stapio";
if (run_as (1, getuid(), getgid(), argv[0], argv) < 0) {
perror(argv[0]);
goto err;
@@ -473,4 +482,3 @@ int send_relocations ()
out:
return rc;
}
-