version 1.60, 2005/06/16 16:03:32 |
version 1.61, 2005/07/04 01:54:10 |
|
|
#include <netinet/in.h> |
#include <netinet/in.h> |
|
|
#include <ctype.h> |
#include <ctype.h> |
|
#include <err.h> |
#include <errno.h> |
#include <errno.h> |
#include <kvm.h> |
#include <kvm.h> |
#include <limits.h> |
#include <limits.h> |
|
|
int ch; |
int ch; |
char *nlistf = NULL, *memf = NULL, *ep; |
char *nlistf = NULL, *memf = NULL, *ep; |
char buf[_POSIX2_LINE_MAX]; |
char buf[_POSIX2_LINE_MAX]; |
|
gid_t gid; |
u_long pcbaddr = 0; |
u_long pcbaddr = 0; |
|
|
af = AF_UNSPEC; |
af = AF_UNSPEC; |
|
|
* guys can't print interesting stuff from kernel memory. |
* guys can't print interesting stuff from kernel memory. |
* Dumping PCB info is also restricted. |
* Dumping PCB info is also restricted. |
*/ |
*/ |
if (nlistf != NULL || memf != NULL || Pflag) { |
gid = getgid(); |
setegid(getgid()); |
if (nlistf != NULL || memf != NULL || Pflag) |
setgid(getgid()); |
if (setresgid(gid, gid, gid) == -1) |
} |
err(1, "setresgid"); |
|
|
if ((kvmd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, |
if ((kvmd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, |
buf)) == NULL) { |
buf)) == NULL) { |
fprintf(stderr, "%s: kvm_open: %s\n", __progname, buf); |
fprintf(stderr, "%s: kvm_open: %s\n", __progname, buf); |
exit(1); |
exit(1); |
} |
} |
setegid(getgid()); |
|
setgid(getgid()); |
if (nlistf == NULL && memf == NULL && !Pflag) |
|
if (setresgid(gid, gid, gid) == -1) |
|
err(1, "setresgid"); |
|
|
#define BACKWARD_COMPATIBILITY |
#define BACKWARD_COMPATIBILITY |
#ifdef BACKWARD_COMPATIBILITY |
#ifdef BACKWARD_COMPATIBILITY |