summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Pennock <pdp@exim.org>2011-01-21 06:10:35 -0500
committerPhil Pennock <pdp@exim.org>2011-01-21 06:10:35 -0500
commit33191679e1a86ba6d9c38a74d0795d00c300f2c5 (patch)
tree772265538dce2e2e3dd25ff90149c596226373fe
parent35110e7035925a8f2bb93c64151da7e0afaf85cf (diff)
Tests compat. setgid failure / dropped_privilege
If we've *dropped* privilege, it's okay to not abort if setgid fails. Document some of what's now needed for the test suite. Adjust the test suide for better post-4.73 compat.
-rw-r--r--src/src/exim.c4
-rw-r--r--test/README14
-rwxr-xr-xtest/runtest6
3 files changed, 17 insertions, 7 deletions
diff --git a/src/src/exim.c b/src/src/exim.c
index 67fbc5cf7..c8a5da12a 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -3885,14 +3885,14 @@ else
no need to complain then. */
if (rv == -1)
{
- if (!unprivileged)
+ if (!(unprivileged || removed_privilege))
{
fprintf(stderr,
"exim: changing group failed: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
else
- debug_printf("changing group to %ld failed: %s\n",
+ DEBUG(D_any) debug_printf("changing group to %ld failed: %s\n",
(long int)exim_gid, strerror(errno));
}
}
diff --git a/test/README b/test/README
index e9cc10dfb..b93deb4c5 100644
--- a/test/README
+++ b/test/README
@@ -108,6 +108,14 @@ In order to run this test suite, the following requirements must be met:
interface; when one is not found, some tests are skipped (with a warning
message).
+(9) Exim must be built with TRUSTED_CONFIG_LIST support, so that the test
+ configs can be placed into it. DISABLE_D_OPTION must not be used. If
+ ALT_CONFIG_PREFIX is used, it must contain the directory of the test-suite.
+ WHITELIST_D_MACROS should contain:
+
+ DIR:EXIM_PATH:AA:ACL:ACLRCPT:ACL_MAIL:ACL_PREDATA:ACL_RCPT:AFFIX:ALLOW:ARG1:ARG2:AUTHF:AUTHS:AUTH_ID_DOMAIN:BAD:BANNER:BB:BR:BRB:CERT:COM:COMMAND_USER:CONNECTCOND:CONTROL:CREQCIP:CREQMAC:CRL:CSS:D6:DATA:DCF:DDF:DEFAULTDWC:DELAY:DETAILS:DRATELIMIT:DYNAMIC_OPTION:ELI:ERROR_DETAILS:ERT:FAKE:FALLBACK:FILTER:FILTER_PREPEND_HOME:FORBID:FORBID_SMTP_CODE:FUSER:HAI:HAP:HARDLIMIT:HEADER_LINE_MAXSIZE:HEADER_MAXSIZE:HELO_MSG:HL:HOSTS:HOSTS_AVOID_TLS:HOSTS_MAX_TRY:HVH:IFACE:IGNORE_QUOTA:INC:INSERT:IP1:IP2:LAST:LDAPSERVERS:LENCHECK:LIMIT:LIST:LOG_SELECTOR:LS:MAXNM:MESSAGE_LOGS:MSIZE:NOTDAEMON:ONCE:ONLY:OPT:OPTION:ORDER:PAH:PEX:PORT:PTBC:QDG:QOLL:QUOTA:QUOTA_FILECOUNT:QWM:RCPT_MSG:REMEMBER:REQUIRE:RETRY:RETRY1:RETRY2:RETURN:RETURN_ERROR_DETAILS:REWRITE:ROUTE_DATA:RRATELIMIT:RT:S:SELECTOR:SELF:SERVER:SERVERS:SREQCIP:SREQMAC:SRV:STD:STRICT:SUB:SUBMISSION_OPTIONS:TIMEOUTDEFER:TIMES:TRUSTED:TRYCLEAR:UL:USE_SENDER:UTF8:VALUE:WMF:X:Y
+
+
OPTIONAL EXTRAS
---------------
@@ -129,9 +137,11 @@ RUNNING THE TEST SUITE
(3) Run "./configure" and then "make". This builds a few auxiliary programs
that are written in C.
-(4) Run "./runtest" (a Perl script) as described below.
+(4) ls -1 $PWD/confs/* >> your_TRUSTED_CONFIG_LIST_filename
+
+(5) Run "./runtest" (a Perl script) as described below.
-(5) If you want to see what tests are available, run "./listtests".
+(6) If you want to see what tests are available, run "./listtests".
BREAKING OUT OF THE TEST SCRIPT
diff --git a/test/runtest b/test/runtest
index d65d0b530..d70b98c64 100755
--- a/test/runtest
+++ b/test/runtest
@@ -2003,7 +2003,7 @@ if ($parm_exim eq "")
# Find what is in the binary #
##################################################
-open(EXIMINFO, "$parm_exim -C confs/0000 -DDIR=$parm_cwd " .
+open(EXIMINFO, "$parm_exim -C $parm_cwd/confs/0000 -DDIR=$parm_cwd " .
"-bP exim_user exim_group|") ||
die "** Cannot run $parm_exim: $!\n";
while(<EXIMINFO>)
@@ -2025,7 +2025,7 @@ if (defined $parm_eximgroup)
else { $parm_exim_gid = getgrnam($parm_eximgroup); }
}
-open(EXIMINFO, "$parm_exim -bV -C confs/0000 -DDIR=$parm_cwd |") ||
+open(EXIMINFO, "$parm_exim -bV -C $parm_cwd/confs/0000 -DDIR=$parm_cwd |") ||
die "** Cannot run $parm_exim: $!\n";
print "-" x 78, "\n";
@@ -2052,7 +2052,7 @@ while (<EXIMINFO>)
%parm_support = @temp;
}
- elsif (/^Lookups: (.*)/)
+ elsif (/^Lookups \(built-in\): (.*)/)
{
print;
@temp = split /(\s+)/, $1;