git://git.exim.org
/
users
/
jgh
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Protect against symlink attacks on MBX lockfile in /tmp as best we can:
[users/jgh/exim.git]
/
test
/
runtest
diff --git
a/test/runtest
b/test/runtest
index 775f658e2834382aed2f70d663debb527607c121..affd82ad485431bab84c5b2494256e4b18e08adf 100755
(executable)
--- a/
test/runtest
+++ b/
test/runtest
@@
-1,6
+1,6
@@
#! /usr/bin/perl -w
#! /usr/bin/perl -w
-# $Cambridge: exim/test/runtest,v 1.
26 2007/04/17 13:05:41 ph10
Exp $
+# $Cambridge: exim/test/runtest,v 1.
33 2009/11/23 13:22:05 nm4
Exp $
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
@@
-23,7
+23,7
@@
use Socket;
# Start by initializing some global variables
# Start by initializing some global variables
-$testversion = "4.
67 (16-Apr-07
)";
+$testversion = "4.
71 (23-Nov-09
)";
$cf = "bin/cf";
$cr = "\r";
$cf = "bin/cf";
$cr = "\r";
@@
-330,7
+330,8
@@
while(<IN>)
s/TlRMTVNTUAACAAAAAAAAAAAoAAABgg[\w+\/]+/TlRMTVNTUAACAAAAAAAAAAAoAAABggAAAEbBRwqFwwIAAAAAAAAAAAAt1sgAAAAA/;
# PRVS values
s/TlRMTVNTUAACAAAAAAAAAAAoAAABgg[\w+\/]+/TlRMTVNTUAACAAAAAAAAAAAoAAABggAAAEbBRwqFwwIAAAAAAAAAAAAt1sgAAAAA/;
# PRVS values
- s?prvs=([^/]+)/[\da-f]{10}@?prvs=$1/xxxxxxxxxx@?g;
+ s?prvs=([^/]+)/[\da-f]{10}@?prvs=$1/xxxxxxxxxx@?g; # Old form
+ s?prvs=[\da-f]{10}=([^@]+)@?prvs=xxxxxxxxxx=$1@?g; # New form
# Error lines on stdout from SSL contain process id values and file names.
# They also contain a source file name and line number, which may vary from
# Error lines on stdout from SSL contain process id values and file names.
# They also contain a source file name and line number, which may vary from
@@
-338,6
+339,9
@@
while(<IN>)
s/^\d+:error:/pppp:error:/;
s/:(?:\/[^\s:]+\/)?([^\/\s]+\.c):\d+:/:$1:dddd:/;
s/^\d+:error:/pppp:error:/;
s/:(?:\/[^\s:]+\/)?([^\/\s]+\.c):\d+:/:$1:dddd:/;
+ # There are differences in error messages between OpenSSL versions
+ s/SSL_CTX_set_cipher_list/SSL_connect/;
+
# One error test in expansions mentions base 62 or 36
s/is not a base (36|62) number/is not a base 36\/62 number/;
# One error test in expansions mentions base 62 or 36
s/is not a base (36|62) number/is not a base 36\/62 number/;
@@
-489,6
+493,12
@@
while(<IN>)
# ======== General uids, gids, and pids ========
# Note: this must come after munges for caller's and exim's uid/gid
# ======== General uids, gids, and pids ========
# Note: this must come after munges for caller's and exim's uid/gid
+ # These are for systems where long int is 64
+ s/\buid=4294967295/uid=-1/;
+ s/\beuid=4294967295/euid=-1/;
+ s/\bgid=4294967295/gid=-1/;
+ s/\begid=4294967295/egid=-1/;
+
s/\bgid=\d+/gid=gggg/;
s/\begid=\d+/egid=gggg/;
s/\bpid=\d+/pid=pppp/;
s/\bgid=\d+/gid=gggg/;
s/\begid=\d+/egid=gggg/;
s/\bpid=\d+/pid=pppp/;
@@
-713,6
+723,10
@@
while(<IN>)
s/\bgethostbyname2?|\bgetipnodebyname/get[host|ipnode]byname[2]/;
s/\bgethostbyname2?|\bgetipnodebyname/get[host|ipnode]byname[2]/;
+ # drop gnutls version strings
+ next if /GnuTLS compile-time version: \d+[\.\d]+$/;
+ next if /GnuTLS runtime version: \d+[\.\d]+$/;
+
# We have to omit the localhost ::1 address so that all is well in
# the IPv4-only case.
# We have to omit the localhost ::1 address so that all is well in
# the IPv4-only case.
@@
-720,6
+734,9
@@
while(<IN>)
if (/looked up these IP addresses/);
next if /name=localhost address=::1/;
if (/looked up these IP addresses/);
next if /name=localhost address=::1/;
+ # drop pdkim debugging header
+ next if /^PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<+$/;
+
# Various other IPv6 lines must be omitted too
next if /using host_fake_gethostbyname for \S+ \(IPv6\)/;
# Various other IPv6 lines must be omitted too
next if /using host_fake_gethostbyname for \S+ \(IPv6\)/;
@@
-902,7
+919,7
@@
if (! -e $sf)
print "\n";
print "------------ $f -----------\n"
if (defined $rf && -s $rf && defined $rsf && -s $rsf);
print "\n";
print "------------ $f -----------\n"
if (defined $rf && -s $rf && defined $rsf && -s $rsf);
- system("$more
$f
");
+ system("$more
'$f'
");
}
}
}
}
@@
-1016,7
+1033,7
@@
if (-e $sf)
# Do the comparison
# Do the comparison
- return 0 if (system("$cf
$mf $sf
>test-cf") == 0);
+ return 0 if (system("$cf
'$mf' '$sf'
>test-cf") == 0);
# Handle comparison failure
# Handle comparison failure
@@
-1036,7
+1053,7
@@
if (-e $sf)
# Update or delete the saved file, and give the appropriate return code.
if (-s $mf)
# Update or delete the saved file, and give the appropriate return code.
if (-s $mf)
- { tests_exit(-1, "Failed to cp $mf $sf") if system("cp
$mf $sf
") != 0; }
+ { tests_exit(-1, "Failed to cp $mf $sf") if system("cp
'$mf' '$sf'
") != 0; }
else
{ tests_exit(-1, "Failed to unlink $sf") if !unlink($sf); }
else
{ tests_exit(-1, "Failed to unlink $sf") if !unlink($sf); }