svn commit: r231912 - head/usr.sbin/daemon
Mikolaj Golub
trociny at FreeBSD.org
Sun Feb 19 10:38:56 UTC 2012
Author: trociny
Date: Sun Feb 19 10:38:55 2012
New Revision: 231912
URL: http://svn.freebsd.org/changeset/base/231912
Log:
If permitted protect the supervisor against pageout kill.
Suggested by: Andrey Zonov <andrey zonov org>
MFC after: 2 weeks
Modified:
head/usr.sbin/daemon/daemon.c
Modified: head/usr.sbin/daemon/daemon.c
==============================================================================
--- head/usr.sbin/daemon/daemon.c Sun Feb 19 10:36:29 2012 (r231911)
+++ head/usr.sbin/daemon/daemon.c Sun Feb 19 10:38:55 2012 (r231912)
@@ -32,6 +32,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/mman.h>
#include <sys/wait.h>
#include <err.h>
@@ -138,6 +139,12 @@ main(int argc, char *argv[])
sigaddset(&mask, SIGCHLD);
if (sigprocmask(SIG_SETMASK, &mask, &oldmask) == -1)
err(1, "sigprocmask");
+ /*
+ * Try to protect against pageout kill. Ignore the
+ * error, madvise(2) will fail only if a process does
+ * not have superuser privileges.
+ */
+ (void)madvise(NULL, 0, MADV_PROTECT);
restart:
/*
* Spawn a child to exec the command, so in the parent
More information about the svn-src-all
mailing list