git: 048ce0876f54 - main - adjkerntz(8): detect extra jailed invokation to keep logs clean
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 21 Jun 2022 18:33:01 UTC
The branch main has been updated by eugen:
URL: https://cgit.FreeBSD.org/src/commit/?id=048ce0876f5421f70a6d348479bdeacdd8472bed
commit 048ce0876f5421f70a6d348479bdeacdd8472bed
Author: Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2022-06-21 18:29:08 +0000
Commit: Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2022-06-21 18:32:54 +0000
adjkerntz(8): detect extra jailed invokation to keep logs clean
It may happen that "adjkerntz -a" called from jailed root crontab.
In that case it spams logs with a line:
sysctl(set: "machdep.wall_cmos_clock"): Operation not permitted
Be silent in that case.
MFC after: 1 month
---
sbin/adjkerntz/adjkerntz.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sbin/adjkerntz/adjkerntz.c b/sbin/adjkerntz/adjkerntz.c
index e6cadcf7f189..2fde545ebf32 100644
--- a/sbin/adjkerntz/adjkerntz.c
+++ b/sbin/adjkerntz/adjkerntz.c
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
* with Garrett Wollman and Bruce Evans fixes.
*
*/
+#include <errno.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
@@ -159,6 +160,12 @@ again:
len = sizeof(kern_offset);
if (sysctlbyname("machdep.adjkerntz", &kern_offset, &len, NULL, 0) == -1) {
+ if (errno == EPERM && !init && geteuid() == 0)
+ /*
+ * Surplus call from jailed root crontab.
+ * Avoid spamming logs.
+ */
+ return 1;
syslog(LOG_ERR, "sysctl(\"machdep.adjkerntz\"): %m");
return 1;
}