Reverted my last brain-dead commit.
Logical error: we need to check whether the server runs on the system it was compiled on and not whether the client uses a server that was compiled on the clients system.
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
1999-02-19 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* lib/open.c, src/daemon/version.c: For suid/sgid servers the
|
||||
operating system version must match the one the server was
|
||||
compiled on.
|
||||
|
||||
* include/glibtop/error.h: Don't include <glib.h>.
|
||||
* sysdeps/common/error.c: Use `int' not `gint'.
|
||||
|
||||
|
21
lib/open.c
21
lib/open.c
@@ -28,8 +28,6 @@
|
||||
|
||||
#include <glibtop/gnuserv.h>
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
/* Opens pipe to gtop server. Returns 0 on success and -1 on error. */
|
||||
|
||||
void
|
||||
@@ -128,23 +126,18 @@ glibtop_open_l (glibtop *server, const char *program_name,
|
||||
/* If the server has been started, ask it for its features. */
|
||||
|
||||
if (server->flags & _GLIBTOP_INIT_STATE_SERVER) {
|
||||
char version [BUFSIZ+10], buffer [BUFSIZ+10];
|
||||
char version [BUFSIZ], buffer [BUFSIZ];
|
||||
glibtop_sysdeps sysdeps;
|
||||
size_t size, nbytes;
|
||||
struct utsname uts;
|
||||
|
||||
/* First check whether the server version is correct. */
|
||||
|
||||
if (uname (&uts))
|
||||
glibtop_error_io_r (server, "uname");
|
||||
|
||||
snprintf (version, BUFSIZ, LIBGTOP_VERSION_STRING,
|
||||
sprintf (version, LIBGTOP_VERSION_STRING,
|
||||
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
||||
sizeof (glibtop_command),
|
||||
sizeof (glibtop_response),
|
||||
sizeof (glibtop_union),
|
||||
sizeof (glibtop_sysdeps),
|
||||
uts.sysname, uts.release, uts.machine);
|
||||
sizeof (glibtop_sysdeps));
|
||||
|
||||
size = strlen (version) + 1;
|
||||
|
||||
@@ -158,12 +151,8 @@ glibtop_open_l (glibtop *server, const char *program_name,
|
||||
glibtop_read_l (server, nbytes, buffer);
|
||||
|
||||
if (memcmp (version, buffer, size))
|
||||
glibtop_error_r
|
||||
(server,
|
||||
"server version is not %s / %d "
|
||||
"compiled for %s %s %s",
|
||||
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
||||
uts.sysname, uts.release, uts.machine);
|
||||
glibtop_error_r (server, "server version is not %s",
|
||||
LIBGTOP_VERSION);
|
||||
|
||||
/* Now ask it for its features. */
|
||||
|
||||
|
@@ -23,25 +23,18 @@
|
||||
#include <glibtop/error.h>
|
||||
#include <glibtop/version.h>
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
void
|
||||
glibtop_send_version (glibtop *server, int fd)
|
||||
{
|
||||
char buffer [BUFSIZ+10];
|
||||
struct utsname uts;
|
||||
char buffer [BUFSIZ];
|
||||
size_t size;
|
||||
|
||||
if (uname (&uts))
|
||||
glibtop_error_io_r (server, "uname");
|
||||
|
||||
snprintf (buffer, BUFSIZ, LIBGTOP_VERSION_STRING,
|
||||
sprintf (buffer, LIBGTOP_VERSION_STRING,
|
||||
LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
|
||||
sizeof (glibtop_command),
|
||||
sizeof (glibtop_response),
|
||||
sizeof (glibtop_union),
|
||||
sizeof (glibtop_sysdeps),
|
||||
uts.sysname, uts.release, uts.machine);
|
||||
sizeof (glibtop_sysdeps));
|
||||
|
||||
size = strlen (buffer) + 1;
|
||||
|
||||
|
Reference in New Issue
Block a user