From f4bc17fe3e727273d3cc8c2c11d1963385c616d0 Mon Sep 17 00:00:00 2001 From: ru Date: Sat, 24 Feb 2001 10:16:54 +0000 Subject: Restrict -a to root only. PR: bin/25337 --- sbin/dmesg/dmesg.8 | 1 + sbin/dmesg/dmesg.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'sbin/dmesg') diff --git a/sbin/dmesg/dmesg.8 b/sbin/dmesg/dmesg.8 index 196b4dc..8d59634 100644 --- a/sbin/dmesg/dmesg.8 +++ b/sbin/dmesg/dmesg.8 @@ -54,6 +54,7 @@ Show all data in the message buffer. This includes any syslog records and .Pa /dev/console output. +Only root is allowed to use this option. .It Fl M Extract values associated with the name list from the specified core instead of the default diff --git a/sbin/dmesg/dmesg.c b/sbin/dmesg/dmesg.c index 541e9df..3883688 100644 --- a/sbin/dmesg/dmesg.c +++ b/sbin/dmesg/dmesg.c @@ -45,6 +45,7 @@ static const char rcsid[] = "$FreeBSD$"; #endif /* not lint */ +#include #include #include @@ -53,9 +54,10 @@ static const char rcsid[] = #include #include #include +#include +#include #include #include -#include struct nlist nl[] = { #define X_MSGBUF 0 @@ -109,6 +111,9 @@ main(argc, argv) if (memf != NULL || nlistf != NULL) setgid(getgid()); + if (all && getuid()) + errx(EX_NOPERM, "must be root to use -a"); + /* Read in kernel message buffer, do sanity checks. */ if ((kd = kvm_open(nlistf, memf, NULL, O_RDONLY, "dmesg")) == NULL) exit (1); -- cgit v1.1