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.
This commit is contained in:
committed by
Martin Baulig
parent
3c9b2e3d9f
commit
72a3f5aaa1
@@ -1,3 +1,12 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
1999-02-10 Martin Baulig <martin@home-of-linux.org>
|
1999-02-10 Martin Baulig <martin@home-of-linux.org>
|
||||||
|
|
||||||
* gnuserv.c (program_invocation_*_name): Declare this as `extern'
|
* gnuserv.c (program_invocation_*_name): Declare this as `extern'
|
||||||
|
@@ -14,7 +14,10 @@
|
|||||||
|
|
||||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
INCLUDES = @INCLUDES@ -D_BSD
|
INCLUDES = @INCLUDES@ -D_BSD \
|
||||||
|
-DLIBGTOP_COMPILE_SYSTEM=\"`uname -s`\" \
|
||||||
|
-DLIBGTOP_COMPILE_RELEASE=\"`uname -r`\" \
|
||||||
|
-DLIBGTOP_COMPILE_MACHINE=\"`uname -m`\"
|
||||||
|
|
||||||
if NEED_LIBGTOP
|
if NEED_LIBGTOP
|
||||||
suid_sysdeps = $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la
|
suid_sysdeps = $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid.la
|
||||||
|
@@ -28,6 +28,8 @@ glibtop *glibtop_global_server = &_glibtop_global_server;
|
|||||||
#include <glibtop/union.h>
|
#include <glibtop/union.h>
|
||||||
#include <glibtop/sysdeps.h>
|
#include <glibtop/sysdeps.h>
|
||||||
|
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
const unsigned long glibtop_server_features =
|
const unsigned long glibtop_server_features =
|
||||||
GLIBTOP_SUID_CPU +
|
GLIBTOP_SUID_CPU +
|
||||||
GLIBTOP_SUID_MEM +
|
GLIBTOP_SUID_MEM +
|
||||||
@@ -56,13 +58,26 @@ GLIBTOP_SUID_PPP;
|
|||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
struct utsname uts;
|
||||||
|
|
||||||
int uid, euid, gid, egid;
|
int uid, euid, gid, egid;
|
||||||
|
|
||||||
|
/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */
|
||||||
|
|
||||||
uid = getuid (); euid = geteuid ();
|
uid = getuid (); euid = geteuid ();
|
||||||
gid = getgid (); egid = getegid ();
|
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);
|
glibtop_init_p (glibtop_global_server, 0, 0);
|
||||||
|
|
||||||
if (setreuid (euid, uid)) _exit (1);
|
if (setreuid (euid, uid)) _exit (1);
|
||||||
|
Reference in New Issue
Block a user