w(1) is not setgid binary since r53279, so remove the setgid() call.
Reviewed By: wollman MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D3541
This commit is contained in:
parent
dbaeb0610b
commit
ab9cee11d6
@ -5,8 +5,6 @@ PROG= w
|
|||||||
SRCS= fmt.c pr_time.c proc_compare.c w.c
|
SRCS= fmt.c pr_time.c proc_compare.c w.c
|
||||||
MAN= w.1 uptime.1
|
MAN= w.1 uptime.1
|
||||||
LIBADD= kvm sbuf xo util
|
LIBADD= kvm sbuf xo util
|
||||||
#BINGRP= kmem
|
|
||||||
#BINMODE=2555
|
|
||||||
LINKS= ${BINDIR}/w ${BINDIR}/uptime
|
LINKS= ${BINDIR}/w ${BINDIR}/uptime
|
||||||
|
|
||||||
.PATH: ${.CURDIR}/../../bin/ps
|
.PATH: ${.CURDIR}/../../bin/ps
|
||||||
|
@ -135,7 +135,7 @@ main(int argc, char *argv[])
|
|||||||
struct kinfo_proc *dkp;
|
struct kinfo_proc *dkp;
|
||||||
struct stat *stp;
|
struct stat *stp;
|
||||||
time_t touched;
|
time_t touched;
|
||||||
int ch, i, nentries, nusers, wcmd, longidle, longattime, dropgid;
|
int ch, i, nentries, nusers, wcmd, longidle, longattime;
|
||||||
const char *memf, *nlistf, *p, *save_p;
|
const char *memf, *nlistf, *p, *save_p;
|
||||||
char *x_suffix;
|
char *x_suffix;
|
||||||
char buf[MAXHOSTNAMELEN], errbuf[_POSIX2_LINE_MAX];
|
char buf[MAXHOSTNAMELEN], errbuf[_POSIX2_LINE_MAX];
|
||||||
@ -159,7 +159,6 @@ main(int argc, char *argv[])
|
|||||||
p = "dhiflM:N:nsuw";
|
p = "dhiflM:N:nsuw";
|
||||||
}
|
}
|
||||||
|
|
||||||
dropgid = 0;
|
|
||||||
memf = _PATH_DEVNULL;
|
memf = _PATH_DEVNULL;
|
||||||
nlistf = NULL;
|
nlistf = NULL;
|
||||||
while ((ch = getopt(argc, argv, p)) != -1)
|
while ((ch = getopt(argc, argv, p)) != -1)
|
||||||
@ -176,11 +175,9 @@ main(int argc, char *argv[])
|
|||||||
case 'M':
|
case 'M':
|
||||||
header = 0;
|
header = 0;
|
||||||
memf = optarg;
|
memf = optarg;
|
||||||
dropgid = 1;
|
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
nlistf = optarg;
|
nlistf = optarg;
|
||||||
dropgid = 1;
|
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
nflag = 1;
|
nflag = 1;
|
||||||
@ -200,13 +197,6 @@ main(int argc, char *argv[])
|
|||||||
_res.retrans = 2; /* resolver timeout to 2 seconds per try */
|
_res.retrans = 2; /* resolver timeout to 2 seconds per try */
|
||||||
_res.retry = 1; /* only try once.. */
|
_res.retry = 1; /* only try once.. */
|
||||||
|
|
||||||
/*
|
|
||||||
* Discard setgid privileges if not the running kernel so that bad
|
|
||||||
* guys can't print interesting stuff from kernel memory.
|
|
||||||
*/
|
|
||||||
if (dropgid)
|
|
||||||
setgid(getgid());
|
|
||||||
|
|
||||||
if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf)) == NULL)
|
if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf)) == NULL)
|
||||||
errx(1, "%s", errbuf);
|
errx(1, "%s", errbuf);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user