summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Dejean <bdejean@gmail.com>2015-07-19 22:37:09 +0200
committerBenoƮt Dejean <bdejean@gmail.com>2015-08-08 10:56:24 +0200
commit45c8452140e65d3f677db0c99d097e02c8a9a6f3 (patch)
tree543111feedb2e75badee11e0ec1eaa8ff8b8e8e3
parent72b4aed8f14b007361fe48aa3748eb39a534aba4 (diff)
downloadlibgtop-45c8452140e65d3f677db0c99d097e02c8a9a6f3.tar.gz
More debug messages to trace euid/egid changes.
-rw-r--r--src/daemon/server.c7
-rw-r--r--sysdeps/freebsd/suid_open.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/src/daemon/server.c b/src/daemon/server.c
index 44b7f618..eafa25a2 100644
--- a/src/daemon/server.c
+++ b/src/daemon/server.c
@@ -25,6 +25,7 @@
#include <glibtop.h>
#include <glibtop/union.h>
#include <glibtop/sysdeps.h>
+#include <glibtop/error.h>
#include <sys/utsname.h>
@@ -42,6 +43,8 @@ main(int argc, char *argv[])
uid = getuid (); euid = geteuid ();
gid = getgid (); egid = getegid ();
+ glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid());
+
if (uname (&uts) < 0) _exit (1);
#ifdef _AIX
@@ -74,10 +77,14 @@ main(int argc, char *argv[])
glibtop_init_p (glibtop_global_server, 0, 0);
+ glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid());
+
if (setreuid (euid, uid)) _exit (1);
if (setregid (egid, gid)) _exit (1);
+ glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid());
+
/* !!! END OF SUID ROOT PART !!! */
handle_slave_connection (0, 0);
diff --git a/sysdeps/freebsd/suid_open.c b/sysdeps/freebsd/suid_open.c
index c27e4923..55456078 100644
--- a/sysdeps/freebsd/suid_open.c
+++ b/sysdeps/freebsd/suid_open.c
@@ -71,12 +71,16 @@ glibtop_open_p (glibtop *server, const char *program_name,
/* Drop priviledges. */
+ glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid());
+
if (setreuid (server->machine.euid, server->machine.uid))
_exit (1);
if (setregid (server->machine.egid, server->machine.gid))
_exit (1);
+ glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid());
+
/* !!! END OF SUID ROOT PART !!! */
/* Our effective uid is now those of the user invoking the server,