summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2015-09-01 06:28:16 +0000
committerdelphij <delphij@FreeBSD.org>2015-09-01 06:28:16 +0000
commit061b55cf1969e8b2c2bca1d8c94923962d4c4283 (patch)
treeb07e881008b8530903d7956df6e165df1dc6ccf9 /usr.bin
parent663f8328dc413447d38e4db62dad8cb381438350 (diff)
downloadFreeBSD-src-061b55cf1969e8b2c2bca1d8c94923962d4c4283.zip
FreeBSD-src-061b55cf1969e8b2c2bca1d8c94923962d4c4283.tar.gz
Drop group privileges after opening the kvm descriptor, otherwise, the code
would not drop privileges as expected. While there also add checks for the drop and bail out immediately if we failed. MFC after: 3 days
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/bluetooth/btsockstat/btsockstat.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/usr.bin/bluetooth/btsockstat/btsockstat.c b/usr.bin/bluetooth/btsockstat/btsockstat.c
index aa85286..78f6127 100644
--- a/usr.bin/bluetooth/btsockstat/btsockstat.c
+++ b/usr.bin/bluetooth/btsockstat/btsockstat.c
@@ -154,9 +154,9 @@ main(int argc, char *argv[])
* Discard setgid privileges if not the running kernel so that
* bad guys can't print interesting stuff from kernel memory.
*/
-
if (memf != NULL)
- setgid(getgid());
+ if (setgid(getgid()) != 0)
+ err(1, "setgid");
kvmd = kopen(memf);
if (kvmd == NULL)
@@ -583,15 +583,9 @@ kopen(char const *memf)
kvm_t *kvmd = NULL;
char errbuf[_POSIX2_LINE_MAX];
- /*
- * Discard setgid privileges if not the running kernel so that
- * bad guys can't print interesting stuff from kernel memory.
- */
-
- if (memf != NULL)
- setgid(getgid());
-
kvmd = kvm_openfiles(NULL, memf, NULL, O_RDONLY, errbuf);
+ if (setgid(getgid()) != 0)
+ err(1, "setgid");
if (kvmd == NULL) {
warnx("kvm_openfiles: %s", errbuf);
return (NULL);
OpenPOWER on IntegriCloud