=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/vmstat/dkstats.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/vmstat/dkstats.c 2002/06/28 22:40:53 1.19 --- src/usr.bin/vmstat/dkstats.c 2002/08/04 00:51:01 1.20 *************** *** 1,4 **** ! /* $OpenBSD: dkstats.c,v 1.19 2002/06/28 22:40:53 deraadt Exp $ */ /* $NetBSD: dkstats.c,v 1.1 1996/05/10 23:19:27 thorpej Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: dkstats.c,v 1.20 2002/08/04 00:51:01 deraadt Exp $ */ /* $NetBSD: dkstats.c,v 1.1 1996/05/10 23:19:27 thorpej Exp $ */ /* *************** *** 87,93 **** /* Kernel pointers: nlistf and memf defined in calling program. */ #if !defined(NOKVM) ! static kvm_t *kd = NULL; #endif extern char *nlistf; extern char *memf; --- 87,93 ---- /* Kernel pointers: nlistf and memf defined in calling program. */ #if !defined(NOKVM) ! extern kvm_t *kd; #endif extern char *nlistf; extern char *memf; *************** *** 250,259 **** if (nlistf != NULL || memf != NULL) { #if !defined(NOKVM) /* Open the kernel. */ ! if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf)) == NULL) errx(1, "kvm_openfiles: %s", errbuf); /* Obtain the namelist symbols from the kernel. */ if (kvm_nlist(kd, namelist)) --- 250,268 ---- if (nlistf != NULL || memf != NULL) { #if !defined(NOKVM) + if (memf != NULL) { + setegid(getgid()); + setgid(getgid()); + } + /* Open the kernel. */ ! if (kd == NULL && ! (kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf)) == NULL) errx(1, "kvm_openfiles: %s", errbuf); + + setegid(getgid()); + setgid(getgid()); /* Obtain the namelist symbols from the kernel. */ if (kvm_nlist(kd, namelist))