diff options
author | Martin Baulig <martin@home-of-linux.org> | 1999-02-19 23:02:09 +0000 |
---|---|---|
committer | Martin Baulig <martin@src.gnome.org> | 1999-02-19 23:02:09 +0000 |
commit | 72a3f5aaa18a2043d36a921af7d4b35e89ad6d47 (patch) | |
tree | 9afd4826830f82b21f02c35ac8aadb5116803a8e /src/daemon/server.c | |
parent | 3c9b2e3d9fa78f38ee22fc29e620617730b897a8 (diff) | |
download | libgtop-72a3f5aaa18a2043d36a921af7d4b35e89ad6d47.tar.gz |
Hardcoded system name. (LIBGTOP_COMPILE_RELEASE): Hardcoded system
1999-02-19 Martin Baulig <martin@home-of-linux.org>
* Makefile.am (LIBGTOP_COMPILE_SYSTEM): Hardcoded system name.
(LIBGTOP_COMPILE_RELEASE): Hardcoded system release.
(LIBGTOP_COMPILE_MACHINE): Hardcoded machine type.
* server.c (main): Abort if not running on the system the server
was compiled on.
Diffstat (limited to 'src/daemon/server.c')
-rw-r--r-- | src/daemon/server.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/daemon/server.c b/src/daemon/server.c index ca2f9a26..46c55967 100644 --- a/src/daemon/server.c +++ b/src/daemon/server.c @@ -28,6 +28,8 @@ glibtop *glibtop_global_server = &_glibtop_global_server; #include <glibtop/union.h> #include <glibtop/sysdeps.h> +#include <sys/utsname.h> + const unsigned long glibtop_server_features = GLIBTOP_SUID_CPU + GLIBTOP_SUID_MEM + @@ -56,13 +58,26 @@ GLIBTOP_SUID_PPP; int main(int argc, char *argv[]) { - /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ - + struct utsname uts; int uid, euid, gid, egid; + /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ + uid = getuid (); euid = geteuid (); gid = getgid (); egid = getegid (); + if (uname (&uts)) _exit (1); + + if (strcmp (uts.sysname, LIBGTOP_COMPILE_SYSTEM) || + strcmp (uts.release, LIBGTOP_COMPILE_RELEASE) || + strcmp (uts.machine, LIBGTOP_COMPILE_MACHINE)) { + fprintf (stderr, "Can only run on %s %s %s\n", + LIBGTOP_COMPILE_SYSTEM, + LIBGTOP_COMPILE_RELEASE, + LIBGTOP_COMPILE_MACHINE); + _exit (1); + } + glibtop_init_p (glibtop_global_server, 0, 0); if (setreuid (euid, uid)) _exit (1); |