=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/netstat/main.c,v retrieving revision 1.60 retrieving revision 1.61 diff -c -r1.60 -r1.61 *** src/usr.bin/netstat/main.c 2005/06/16 16:03:32 1.60 --- src/usr.bin/netstat/main.c 2005/07/04 01:54:10 1.61 *************** *** 1,4 **** ! /* $OpenBSD: main.c,v 1.60 2005/06/16 16:03:32 jaredy Exp $ */ /* $NetBSD: main.c,v 1.9 1996/05/07 02:55:02 thorpej Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: main.c,v 1.61 2005/07/04 01:54:10 djm Exp $ */ /* $NetBSD: main.c,v 1.9 1996/05/07 02:55:02 thorpej Exp $ */ /* *************** *** 40,46 **** #if 0 static char sccsid[] = "from: @(#)main.c 8.4 (Berkeley) 3/1/94"; #else ! static char *rcsid = "$OpenBSD: main.c,v 1.60 2005/06/16 16:03:32 jaredy Exp $"; #endif #endif /* not lint */ --- 40,46 ---- #if 0 static char sccsid[] = "from: @(#)main.c 8.4 (Berkeley) 3/1/94"; #else ! static char *rcsid = "$OpenBSD: main.c,v 1.61 2005/07/04 01:54:10 djm Exp $"; #endif #endif /* not lint */ *************** *** 52,57 **** --- 52,58 ---- #include #include + #include #include #include #include *************** *** 255,260 **** --- 256,262 ---- int ch; char *nlistf = NULL, *memf = NULL, *ep; char buf[_POSIX2_LINE_MAX]; + gid_t gid; u_long pcbaddr = 0; af = AF_UNSPEC; *************** *** 390,407 **** * guys can't print interesting stuff from kernel memory. * Dumping PCB info is also restricted. */ ! if (nlistf != NULL || memf != NULL || Pflag) { ! setegid(getgid()); ! setgid(getgid()); ! } if ((kvmd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, buf)) == NULL) { fprintf(stderr, "%s: kvm_open: %s\n", __progname, buf); exit(1); } ! setegid(getgid()); ! setgid(getgid()); #define BACKWARD_COMPATIBILITY #ifdef BACKWARD_COMPATIBILITY --- 392,411 ---- * guys can't print interesting stuff from kernel memory. * Dumping PCB info is also restricted. */ ! gid = getgid(); ! if (nlistf != NULL || memf != NULL || Pflag) ! if (setresgid(gid, gid, gid) == -1) ! err(1, "setresgid"); if ((kvmd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, buf)) == NULL) { fprintf(stderr, "%s: kvm_open: %s\n", __progname, buf); exit(1); } ! ! if (nlistf == NULL && memf == NULL && !Pflag) ! if (setresgid(gid, gid, gid) == -1) ! err(1, "setresgid"); #define BACKWARD_COMPATIBILITY #ifdef BACKWARD_COMPATIBILITY