aboutsummaryrefslogtreecommitdiff
path: root/sbin/dmesg
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2001-02-24 10:16:54 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2001-02-24 10:16:54 +0000
commitb52c326cfc9a5fa83f56ed0e5dd208ee05f29ef4 (patch)
tree5ff7e025326c68bbd54ab71de2634258897fecc8 /sbin/dmesg
parent130c1f25a4be674d955ac31d43fb1ac6621606d1 (diff)
downloadsrc-b52c326cfc9a5fa83f56ed0e5dd208ee05f29ef4.tar.gz
src-b52c326cfc9a5fa83f56ed0e5dd208ee05f29ef4.zip
Restrict -a to root only.
PR: bin/25337
Notes
Notes: svn path=/head/; revision=72973
Diffstat (limited to 'sbin/dmesg')
-rw-r--r--sbin/dmesg/dmesg.81
-rw-r--r--sbin/dmesg/dmesg.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/sbin/dmesg/dmesg.8 b/sbin/dmesg/dmesg.8
index 196b4dc0be5a..8d59634d35ae 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 541e9dfb8c0f..3883688de3de 100644
--- a/sbin/dmesg/dmesg.c
+++ b/sbin/dmesg/dmesg.c
@@ -45,6 +45,7 @@ static const char rcsid[] =
"$FreeBSD$";
#endif /* not lint */
+#include <sys/types.h>
#include <sys/msgbuf.h>
#include <err.h>
@@ -53,9 +54,10 @@ static const char rcsid[] =
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sysexits.h>
+#include <syslog.h>
#include <unistd.h>
#include <vis.h>
-#include <sys/syslog.h>
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);