From d95f9fdbbc934eb921bdf989bda1139415ef7d91 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Tue, 4 Jan 2005 10:37:55 +0000 Subject: [PATCH] Need to initialize getloadavg() as root in the daemon when deliver_drop_privilege is set, for the benefit of the queue runner. --- doc/doc-txt/ChangeLog | 8 +++++++- src/src/daemon.c | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 6796a00b5..297303ad6 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.60 2005/01/04 10:25:58 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.61 2005/01/04 10:37:55 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -275,6 +275,12 @@ Exim version 4.50 62. Configuration update for GNU/Hurd and variations. Updated Makefile-GNU and os.h-GNU, and added configuration files for GNUkFreeBSD and GNUkNetBSD. +63. The daemon start-up calls getloadavg() while still root for those OS that + need the first call to be done as root, but it missed one case: when + deliver_queue_load_max is set with deliver_drop_privilege. This is + necessary for the benefit of the queue runner, because there is no re-exec + when deliver_drop_privilege is set. + Exim version 4.43 ----------------- diff --git a/src/src/daemon.c b/src/src/daemon.c index dfd781116..1c274d732 100644 --- a/src/src/daemon.c +++ b/src/src/daemon.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/daemon.c,v 1.4 2005/01/04 10:00:42 ph10 Exp $ */ +/* $Cambridge: exim/src/src/daemon.c,v 1.5 2005/01/04 10:37:55 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -898,7 +898,9 @@ if (daemon_listen) order to perform an "open" on the kernel memory file). */ #ifdef LOAD_AVG_NEEDS_ROOT - if (queue_only_load >= 0 || smtp_load_reserve >= 0) (void)os_getloadavg(); + if (queue_only_load >= 0 || smtp_load_reserve >= 0 || + (deliver_queue_load_max >= 0 && deliver_drop_privilege)) + (void)os_getloadavg(); #endif /* If -oX was used, disable the writing of a pid file unless -oP was -- 2.25.1