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
This commit is contained in:
Eugene Grosbein 2022-06-22 01:29:08 +07:00
parent b4bdc8f925
commit 048ce0876f

View File

@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
* with Garrett Wollman and Bruce Evans fixes. * with Garrett Wollman and Bruce Evans fixes.
* *
*/ */
#include <errno.h>
#include <stdio.h> #include <stdio.h>
#include <signal.h> #include <signal.h>
#include <stdlib.h> #include <stdlib.h>
@ -159,6 +160,12 @@ again:
len = sizeof(kern_offset); len = sizeof(kern_offset);
if (sysctlbyname("machdep.adjkerntz", &kern_offset, &len, NULL, 0) == -1) { 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"); syslog(LOG_ERR, "sysctl(\"machdep.adjkerntz\"): %m");
return 1; return 1;
} }