From ba18e66ae840cf03be48235bbad9f09e68dd2400 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Tue, 23 Aug 2005 10:29:10 +0000 Subject: Don't panic if the attempt to create the spool directory fails and the error isn't "already exists". Needed for the new test suite. --- doc/doc-txt/ChangeLog | 7 ++++++- src/src/exim.c | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 2b51e62f2..31789929d 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.209 2005/08/23 08:46:33 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.210 2005/08/23 10:29:10 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -114,6 +114,11 @@ PH/26 Exim was recognizing IPv6 addresses of the form [IPv6:....] in EHLO PH/27 Added the % operator to ${eval:}. +PH/28 Exim tries to create and chdir to its spool directory when it starts; + it should be ignoring failures (because with -C, for example, it has lost + privilege). It wasn't ignoring creation failures other than "already + exists". + Exim version 4.52 ----------------- diff --git a/src/src/exim.c b/src/src/exim.c index 06e01399a..8ed39d654 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/exim.c,v 1.24 2005/08/09 13:31:52 ph10 Exp $ */ +/* $Cambridge: exim/src/src/exim.c,v 1.25 2005/08/23 10:29:10 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -3300,11 +3300,12 @@ if (((debug_selector & D_any) != 0 || (log_extra_selector & LX_arguments) != 0) on this in the code, which always uses fully qualified names, but it's useful for core dumps etc. Don't complain if it fails - the spool directory might not be generally accessible and calls with the -C option (and others) have lost -privilege by now. */ +privilege by now. Before the chdir, we try to ensure that the directory exists. +*/ if (Uchdir(spool_directory) != 0) { - (void)directory_make(spool_directory, US"", SPOOL_DIRECTORY_MODE, TRUE); + (void)directory_make(spool_directory, US"", SPOOL_DIRECTORY_MODE, FALSE); (void)Uchdir(spool_directory); } -- cgit v1.2.3