exim.git
12 years agoBug 1224: fixup testsuite case output from testdb.
Jeremy Harris [Sun, 22 Apr 2012 15:13:22 +0000 (16:13 +0100)]
Bug 1224: fixup testsuite case output from testdb.

12 years agoAdd testsuite case retry (without update) option on failed file compare.
Jeremy Harris [Sun, 22 Apr 2012 13:32:03 +0000 (14:32 +0100)]
Add testsuite case retry (without update) option on failed file compare.

12 years agoAccept change in testcase munged output for -bt
Jeremy Harris [Sun, 22 Apr 2012 09:01:29 +0000 (10:01 +0100)]
Accept change in testcase munged output for -bt

Trailing spaces were trimmed by commit 37acd760db

12 years agoBug 1224 followon - avoid breaking other testcases.
Jeremy Harris [Thu, 19 Apr 2012 00:52:07 +0000 (01:52 +0100)]
Bug 1224 followon - avoid breaking other testcases.

Add specific patterns to avoid when munging the output.
This is fragile and may still be broken outside my specific test environment.

12 years agoFix bug 1224.
Jeremy Harris [Wed, 18 Apr 2012 23:43:11 +0000 (00:43 +0100)]
Fix bug 1224.

Replace the lookup index char in sterr traces with a zero;
update testcase expected stderr files to match.

12 years agoFix bug 1229.
Jeremy Harris [Wed, 18 Apr 2012 20:21:28 +0000 (21:21 +0100)]
Fix bug 1229.

Update testcase output with now-expected info.

12 years agoTestcase changes to match changes introduced by bug 1214.
root [Tue, 17 Apr 2012 20:05:20 +0000 (21:05 +0100)]
Testcase changes to match changes introduced by bug 1214.

Additional "A=" authenticator info was added to log lines for rejections.

12 years agoMerge remote branch 'origin'
root [Mon, 16 Apr 2012 20:04:52 +0000 (21:04 +0100)]
Merge remote branch 'origin'

12 years agoHandle TAB, not just SP, in MAIL args.
Phil Pennock [Fri, 13 Apr 2012 02:33:48 +0000 (19:33 -0700)]
Handle TAB, not just SP, in MAIL args.

Analysis, diagnosis and variant patch by Todd Lyons.

12 years agoUpdated OptionsList with gsasl, heimdal_gssapi, _PC changes.
Phil Pennock [Thu, 12 Apr 2012 10:02:20 +0000 (03:02 -0700)]
Updated OptionsList with gsasl, heimdal_gssapi, _PC changes.

Also maildir_use_size_file is now expanded

12 years agoTwo clarifications.
Phil Pennock [Thu, 12 Apr 2012 08:41:44 +0000 (01:41 -0700)]
Two clarifications.

String expansion, draw more attention to † marking.

Document the order in which parameters are supplied to relative comparators.

12 years agoFix IPv6 RE
root [Mon, 2 Apr 2012 19:57:49 +0000 (20:57 +0100)]
Fix IPv6 RE

12 years agofix gsasl / cyrus claims
Phil Pennock [Sat, 31 Mar 2012 10:10:54 +0000 (03:10 -0700)]
fix gsasl / cyrus claims

Point 1 for 4.78 said gsasl could *not* be used to replace cyrus.
This was obsoleted by point 5.
Remove claim from point 1, add additional note to point 5.

12 years agoHandle alternate access method flag in ls.
Phil Pennock [Fri, 30 Mar 2012 20:52:17 +0000 (13:52 -0700)]
Handle alternate access method flag in ls.

Jeremy Harris found ls output not parsing on SELinux systems.  I
identified this as SUSv3's "optional alternate access method flag".
Jeremy wrote the patch, I adjusted a little.

fixes bug 1226

12 years agoset umask
Phil Pennock [Fri, 30 Mar 2012 20:47:15 +0000 (13:47 -0700)]
set umask

fixes bug 1228

12 years agohandle more of the new format version numbers
Phil Pennock [Fri, 30 Mar 2012 20:41:16 +0000 (13:41 -0700)]
handle more of the new format version numbers

12 years agoMerge branch 'dbmjz'
Phil Pennock [Wed, 21 Mar 2012 08:45:59 +0000 (01:45 -0700)]
Merge branch 'dbmjz'

12 years agoheimdal_gssapi: accept SASL with empty authzid
Phil Pennock [Wed, 21 Mar 2012 08:38:57 +0000 (01:38 -0700)]
heimdal_gssapi: accept SASL with empty authzid

Saw this happening with Apple Mail; accept it, dup the GSS Display Name

12 years agoAdd dbmjz lookup type
Phil Pennock [Fri, 2 Mar 2012 09:51:01 +0000 (01:51 -0800)]
Add dbmjz lookup type

12 years agoLog auth data in rejectlog.
Phil Pennock [Sun, 19 Feb 2012 22:03:06 +0000 (17:03 -0500)]
Log auth data in rejectlog.

http://bugs.exim.org/attachment.cgi?id=547&action=edit
fixes bug: 1214
Patch by Jeremy Harris

12 years agoexpand cyrus_sasl server_realm option
Phil Pennock [Sat, 18 Feb 2012 17:05:03 +0000 (12:05 -0500)]
expand cyrus_sasl server_realm option

12 years agoMerge branch 'sasl_fixes'
Phil Pennock [Sat, 18 Feb 2012 16:20:18 +0000 (11:20 -0500)]
Merge branch 'sasl_fixes'

12 years agoUse gsasl_property_fast() in property callback.
Phil Pennock [Sat, 18 Feb 2012 16:10:36 +0000 (11:10 -0500)]
Use gsasl_property_fast() in property callback.

Avoids the loops which we only cancel out anyway.

12 years agoDocument pkg-config for TLS
Phil Pennock [Sat, 18 Feb 2012 14:22:27 +0000 (09:22 -0500)]
Document pkg-config for TLS

12 years agoSupport pkg-config for SSL libraries.
Phil Pennock [Sat, 18 Feb 2012 14:10:50 +0000 (09:10 -0500)]
Support pkg-config for SSL libraries.

Also: update EDITME to refer to pkg-config & AUTH_HEIMDAL_GSSAPI.

12 years agoDocument pkg-config
Phil Pennock [Sat, 18 Feb 2012 13:34:12 +0000 (08:34 -0500)]
Document pkg-config

12 years agoSwap gsasl GSSAPI $auth1/$auth2
Phil Pennock [Sat, 18 Feb 2012 13:14:29 +0000 (08:14 -0500)]
Swap gsasl GSSAPI $auth1/$auth2

12 years agoDrop server_realm from heimdal_gssapi
Phil Pennock [Sat, 18 Feb 2012 12:15:16 +0000 (07:15 -0500)]
Drop server_realm from heimdal_gssapi

12 years agoDocument heimdal_gssapi as it works now.
Phil Pennock [Sat, 18 Feb 2012 09:56:19 +0000 (04:56 -0500)]
Document heimdal_gssapi as it works now.

12 years agoMinor cleanups.
Phil Pennock [Sat, 18 Feb 2012 09:10:35 +0000 (04:10 -0500)]
Minor cleanups.

multi-blank-line protection never set the bool needed
OID-method for keytab setting cleanup (drop <roken.h> and fix comments)

12 years agoUse gsskrb5_register_acceptor_identity
Phil Pennock [Fri, 17 Feb 2012 13:01:10 +0000 (08:01 -0500)]
Use gsskrb5_register_acceptor_identity

Drop the OID and pseudo-standard GSSAPI extension mechanism.
Found Heimdal-specific API call I needed, works great.
gsskrb5_register_acceptor_identity(filename)

Separately: add various debug statements.

12 years agoFirst pass heimdal_gssapi authenticator.
Phil Pennock [Wed, 15 Feb 2012 13:09:57 +0000 (08:09 -0500)]
First pass heimdal_gssapi authenticator.

Not yet working, failing to set keytab.

Also: support (AUTH|LOOKUP)_*_PC=foo to use `pkg-config foo` for cflags/libs.

12 years agoDocument gsasl integration
Phil Pennock [Tue, 14 Feb 2012 02:11:25 +0000 (21:11 -0500)]
Document gsasl integration

12 years agoMore bug-fixes, GSASL DIGEST-MD5 now works.
Phil Pennock [Mon, 6 Feb 2012 01:36:51 +0000 (20:36 -0500)]
More bug-fixes, GSASL DIGEST-MD5 now works.

Defined helper streqic() since I seem tired enough to be forgetting ==0 checks.
Deal with left-over-data-to-send correctly.
Now tested with PLAIN, CRAM-MD5, DIGEST-MD5.
For DIGEST-MD5, check for server_realm, since GSASL doesn't error out without it.

12 years agoremove stray globals block
Phil Pennock [Mon, 6 Feb 2012 00:55:37 +0000 (19:55 -0500)]
remove stray globals block

12 years agoImplemented gsasl driver for authentication.
Phil Pennock [Mon, 6 Feb 2012 00:13:32 +0000 (19:13 -0500)]
Implemented gsasl driver for authentication.

Missing: documentation; tests.

Tested: PLAIN auth.

Status: probably buggy

12 years agoDocumentation for $tls_bits and SASL changes
Phil Pennock [Sat, 4 Feb 2012 07:33:40 +0000 (02:33 -0500)]
Documentation for $tls_bits and SASL changes

12 years agoVarious SASL fixes.
Phil Pennock [Sat, 4 Feb 2012 07:26:27 +0000 (02:26 -0500)]
Various SASL fixes.

Export $tls_bits new expansion variable (not yet documented).
Fix tls-gnu.c so that ciphername string construction uses bit-count, not byte-count.
Avoid hard-coding primary_hostname in first call to init Cyrus SASL.
Cast fix for function pointer (Cyrus-SASL uses void params in struct entry funcptr, so need to cast).
Many more debug statements in cyrus_sasl.c
Pass external SSF from TLS cipher into Cyrus SASL initialisation.
Detect when we can't get an identity from SASL properties (error out correctly).
Detect when SASL negotiated a protection layer and error out, since we do not support those.

12 years agobool{} is false for empty strings
Phil Pennock [Tue, 3 Jan 2012 07:41:57 +0000 (02:41 -0500)]
bool{} is false for empty strings

fixes bug 1193
reported by Jasen Betts.

12 years agoDocumentation had primary_host_name for primary_hostname. Fixes: #1169
Nigel Metheringham [Wed, 30 Nov 2011 15:55:14 +0000 (15:55 +0000)]
Documentation had primary_host_name for primary_hostname. Fixes: #1169

12 years agoeximstats DATA reject detection regexps improved. Fixes: #1093
Nigel Metheringham [Wed, 30 Nov 2011 15:46:48 +0000 (15:46 +0000)]
eximstats DATA reject detection regexps improved. Fixes: #1093

12 years agoDocumentation fix. Fixes: #949
Nigel Metheringham [Wed, 30 Nov 2011 15:41:55 +0000 (15:41 +0000)]
Documentation fix. Fixes: #949

12 years agoHandle short writes on logfiles.
Phil Pennock [Tue, 22 Nov 2011 19:14:57 +0000 (14:14 -0500)]
Handle short writes on logfiles.

fixes bug 1053

12 years agoMerge branch 'log_retry'
Phil Pennock [Mon, 21 Nov 2011 03:02:16 +0000 (22:02 -0500)]
Merge branch 'log_retry'

12 years agoRough readme mainly for benefit of github
Nigel Metheringham [Fri, 18 Nov 2011 13:36:14 +0000 (13:36 +0000)]
Rough readme mainly for benefit of github

Pod translator is lousing up - may move to a different
format for the future.  [issues are with L<> links]

13 years agolog_write EINTR handling on write()
Phil Pennock [Mon, 14 Nov 2011 04:51:43 +0000 (23:51 -0500)]
log_write EINTR handling on write()

13 years agoParallel build fixes for lookups
Phil Pennock [Thu, 10 Nov 2011 09:44:04 +0000 (04:44 -0500)]
Parallel build fixes for lookups

Make lookups depend upon PHDRS not HDRS.
Make parent dir depend upon child build target for lookups

13 years agoASCII NUL in desc of $body_zerocount (keyword grepability)
Phil Pennock [Thu, 20 Oct 2011 23:30:20 +0000 (19:30 -0400)]
ASCII NUL in desc of $body_zerocount (keyword grepability)

13 years agoEXPAND_LISTMATCH_RHS for match_ip too
Phil Pennock [Fri, 14 Oct 2011 14:03:02 +0000 (10:03 -0400)]
EXPAND_LISTMATCH_RHS for match_ip too

13 years agoPCRE_PRERELEASE is a bare sequence, not a string.
Phil Pennock [Tue, 11 Oct 2011 07:27:17 +0000 (03:27 -0400)]
PCRE_PRERELEASE is a bare sequence, not a string.

13 years agoUnbreak release.sh for final releases exim-4_77
Phil Pennock [Mon, 10 Oct 2011 05:18:13 +0000 (01:18 -0400)]
Unbreak release.sh for final releases

13 years agoUpdate release date, prep for 4.77 final cut
Phil Pennock [Mon, 10 Oct 2011 05:05:07 +0000 (01:05 -0400)]
Update release date, prep for 4.77 final cut

13 years agoTestsuite: also handle -XX in version
Phil Pennock [Mon, 10 Oct 2011 03:53:48 +0000 (23:53 -0400)]
Testsuite: also handle -XX in version

13 years agoMore testsuite fixes
Phil Pennock [Mon, 10 Oct 2011 03:43:13 +0000 (23:43 -0400)]
More testsuite fixes

13 years agoMake runtest more resilient to setup problems
Phil Pennock [Mon, 10 Oct 2011 00:34:40 +0000 (20:34 -0400)]
Make runtest more resilient to setup problems

13 years agofix unprotected variable in SQL example
Phil Pennock [Sun, 9 Oct 2011 06:25:31 +0000 (02:25 -0400)]
fix unprotected variable in SQL example

13 years agoMake README.UPDATING more explicit, with more examples, about the impact of the match...
Phil Pennock [Sat, 8 Oct 2011 11:13:07 +0000 (07:13 -0400)]
Make README.UPDATING more explicit, with more examples, about the impact of the match_<type> changes

13 years agoexiqgrep: handle queue line size output too small for K
Phil Pennock [Fri, 7 Oct 2011 20:37:32 +0000 (16:37 -0400)]
exiqgrep: handle queue line size output too small for K

13 years agorework userforward local_part_suffix documentation
Phil Pennock [Fri, 7 Oct 2011 03:40:01 +0000 (23:40 -0400)]
rework userforward local_part_suffix documentation

Loosely based on suggestion from Julian Gilbey.
fixes bug 1139.

13 years agoshut up bogus complaint of unused variable in new ratelimit ACL work exim-4_77_RC4
Phil Pennock [Thu, 6 Oct 2011 06:59:26 +0000 (02:59 -0400)]
shut up bogus complaint of unused variable in new ratelimit ACL work

13 years agoApply patch from Dmitry Isaikin fixing log.c format string.
Phil Pennock [Wed, 5 Oct 2011 23:36:34 +0000 (19:36 -0400)]
Apply patch from Dmitry Isaikin fixing log.c format string.

fixes bug 1152.

13 years agofix sub2_honour_dollar type exim-4_77_RC3
Phil Pennock [Wed, 5 Oct 2011 04:29:25 +0000 (00:29 -0400)]
fix sub2_honour_dollar type

Was code correct before, but storing a ptr of 0 or 1, from bool initialiser.
I meant to use a BOOL and it is more type-safe to do so, so fixed.

13 years agoquote var for case stmt, so that old shell will see it as empty, rather than syntax...
Phil Pennock [Wed, 5 Oct 2011 04:27:45 +0000 (00:27 -0400)]
quote var for case stmt, so that old shell will see it as empty, rather than syntax error

13 years agotest for .git dir with -d not -e; more portable
Phil Pennock [Wed, 5 Oct 2011 04:26:33 +0000 (00:26 -0400)]
test for .git dir with -d not -e; more portable

13 years agoSolaris/Irix portability hacks for reversion
Phil Pennock [Wed, 5 Oct 2011 04:21:34 +0000 (00:21 -0400)]
Solaris/Irix portability hacks for reversion

13 years agosource referenced version.sh file always exim-4_77_RC2
Phil Pennock [Mon, 3 Oct 2011 23:16:36 +0000 (19:16 -0400)]
source referenced version.sh file always

Tested for version.sh in cwd, but used . to source, assuming that
would pull in file from cwd.  True on BSD (checked after $PATH) but
not part of POSIX and not true for bash when in POSIX mode.

13 years agoPP/12 fix uninitialised greeting string from PP/03 exim-4_77_RC1
Phil Pennock [Mon, 3 Oct 2011 12:10:11 +0000 (08:10 -0400)]
PP/12 fix uninitialised greeting string from PP/03

13 years agoExim 4.77: documentation version updates.
Phil Pennock [Mon, 3 Oct 2011 11:41:40 +0000 (07:41 -0400)]
Exim 4.77: documentation version updates.

13 years agoMerge branch 'list_safety'
Phil Pennock [Mon, 3 Oct 2011 11:36:12 +0000 (07:36 -0400)]
Merge branch 'list_safety'

(gnutls fixes had updated some text docs)

13 years agoEXPAND_LISTMATCH_RHS plumbed into build makefiles. list_safety_merge_proposal
Phil Pennock [Sun, 25 Sep 2011 05:01:41 +0000 (01:01 -0400)]
EXPAND_LISTMATCH_RHS plumbed into build makefiles.

Tested builds both with and without this option, behaviour matches expectations.

13 years agomatch_* do not expand RHS, unconditionally.
Phil Pennock [Sun, 25 Sep 2011 04:50:48 +0000 (00:50 -0400)]
match_* do not expand RHS, unconditionally.

EXPAND_LISTMATCH_RHS define is checked, but not yet plumbed that into build system.

13 years agoImplement inlist/inlisti expansion conditions
Phil Pennock [Sun, 25 Sep 2011 04:01:26 +0000 (00:01 -0400)]
Implement inlist/inlisti expansion conditions

13 years agoDocument match_*/inlist changes (before coding starts)
Phil Pennock [Sun, 25 Sep 2011 03:13:27 +0000 (23:13 -0400)]
Document match_*/inlist changes (before coding starts)

13 years agoMake sure rc is initialised
Phil Pennock [Sat, 24 Sep 2011 07:12:05 +0000 (03:12 -0400)]
Make sure rc is initialised

13 years agoPull Andreas Metzler's fix for gnutls_certificate_verify_peers (bug 1095)
Phil Pennock [Sat, 24 Sep 2011 07:09:44 +0000 (03:09 -0400)]
Pull Andreas Metzler's fix for gnutls_certificate_verify_peers (bug 1095)

13 years agoTLS1.2 and TLS1.1 support with GnuTLS
Phil Pennock [Sat, 24 Sep 2011 05:30:34 +0000 (01:30 -0400)]
TLS1.2 and TLS1.1 support with GnuTLS

13 years agossize_t for mime.c
Phil Pennock [Mon, 5 Sep 2011 20:08:19 +0000 (16:08 -0400)]
ssize_t for mime.c

mime_decode_*() functions can return -1 for error, which would be lost when assigning to unsigned int.
Sprinkled ssize_t across function return types and result variables.

13 years agoDoc: exim-future@ gone; mention exim-cvs@
Phil Pennock [Mon, 5 Sep 2011 19:31:02 +0000 (15:31 -0400)]
Doc: exim-future@ gone; mention exim-cvs@

fixes bug 1146

13 years agoDocument behaviour of message_size_limit=0 (main config setting, not transport)
Phil Pennock [Sun, 4 Sep 2011 04:43:15 +0000 (00:43 -0400)]
Document behaviour of message_size_limit=0 (main config setting, not transport)

13 years agoDoc fixes for syntax errors.
Phil Pennock [Sun, 28 Aug 2011 20:45:46 +0000 (16:45 -0400)]
Doc fixes for syntax errors.

Fixes from Simon Arlott.

13 years agoHandle IPv6 addresses with SPF.
Phil Pennock [Sun, 28 Aug 2011 20:35:03 +0000 (16:35 -0400)]
Handle IPv6 addresses with SPF.

Patch from Wolfgang Breyha.

Also, slight improvements to some debug statements.

fixes bug 860

13 years agoHandle ${run} returning more data than OS pipe buffer size.
Phil Pennock [Sun, 28 Aug 2011 20:27:01 +0000 (16:27 -0400)]
Handle ${run} returning more data than OS pipe buffer size.

Patch from Holger Weiß.
fixes bug 1131

13 years agoMake maildir_use_size_file expandable.
Phil Pennock [Sat, 27 Aug 2011 23:19:48 +0000 (16:19 -0700)]
Make maildir_use_size_file expandable.

Patch from Heiko Schlittermann.
Fixes bug 1089

13 years agoStop build process more reliably on failure.
Phil Pennock [Sat, 27 Aug 2011 23:10:52 +0000 (16:10 -0700)]
Stop build process more reliably on failure.

Patch from Heiko Schlittermann.
Fixes bug 1087

13 years ago$av_failed variable set when av_scanner deferred
Phil Pennock [Sat, 27 Aug 2011 23:01:01 +0000 (16:01 -0700)]
$av_failed variable set when av_scanner deferred

Patch from John Horne.
Fixes bug 1078

13 years agoUse .dylib not .so for dynamic libraries on MacOS
Phil Pennock [Sat, 27 Aug 2011 22:45:01 +0000 (15:45 -0700)]
Use .dylib not .so for dynamic libraries on MacOS

Not tested the drtables.c change for dynamically loaded lookups, only
the readline loading for -be interactive mode.

13 years agoAdd protocol=smtps support to smtp transport.
Phil Pennock [Sat, 27 Aug 2011 21:43:09 +0000 (14:43 -0700)]
Add protocol=smtps support to smtp transport.

Permits SSL-on-connect for outbound connections.

Heavily based on Simon Arlott's patch, but with enough modifications to
risk new bugs.

nb: am on a plane, change confirmed to compile on MacOS, nothing more

fixes bug 97

13 years agoRaise smtp_cmd_buffer_size to 16384.
Phil Pennock [Sat, 27 Aug 2011 18:58:44 +0000 (11:58 -0700)]
Raise smtp_cmd_buffer_size to 16384.

Needed to interoperate with SASL commands containing a large
initial-response; in practice, GSSAPI with authorisation data, such as
in a Windows domain.

Patch from Paul Fisher.

fixes bug 879

13 years agoPull strict-aliasing fix for sockaddr_46.
Phil Pennock [Wed, 6 Jul 2011 15:19:17 +0000 (11:19 -0400)]
Pull strict-aliasing fix for sockaddr_46.

One-line code change in unattributed .patch file bundled in someone's
.src.rpm.

We cause plenty of warnings for -Wstrict-aliasing=2, most appear to be
signed/unsigned char issues.

13 years agoUse git to automatically create version.h
Tony Finch [Thu, 30 Jun 2011 19:03:17 +0000 (20:03 +0100)]
Use git to automatically create version.h

Adapted from git itself via unifdef. This does not (yet) include
the equivalent automation for the doc build.

13 years agoAnother PCRE remnant.
Tony Finch [Thu, 30 Jun 2011 18:05:02 +0000 (19:05 +0100)]
Another PCRE remnant.

13 years agoMore PCRE cleanup.
Tony Finch [Thu, 30 Jun 2011 17:45:03 +0000 (18:45 +0100)]
More PCRE cleanup.

13 years agoRemove a few PCRE remnants.
Tony Finch [Thu, 30 Jun 2011 15:54:51 +0000 (16:54 +0100)]
Remove a few PCRE remnants.

13 years agoRemove obsolete $Cambridge$ CVS revision strings.
Tony Finch [Wed, 29 Jun 2011 16:31:00 +0000 (17:31 +0100)]
Remove obsolete $Cambridge$ CVS revision strings.

I have also de-CVSed the ABOUT files and cleaned up a few
introductory comments.

13 years agodoc/doc-txt/NewStuff: note the ratelimit changes.
Tony Finch [Fri, 17 Jun 2011 19:55:53 +0000 (20:55 +0100)]
doc/doc-txt/NewStuff: note the ratelimit changes.

13 years agoImproved ratelimit ACL condition.
Tony Finch [Mon, 13 Jun 2011 20:48:24 +0000 (21:48 +0100)]
Improved ratelimit ACL condition.

Replace /noupdate with simpler /readonly option. (/noupdate is
supported for backwards compatibility but no longer documented.)

Better checking of the compatibility between per_* options and the
ACL in which the ratelimit condition appears.

Better handling of the start of a burst of email and of very low-rate
clients.

The new /count= option generalizes the per_byte and per_rcpt options.

The new /unique= option is a rather groovy use for a Bloom filter.

13 years agoexiwhat: Ensure the SIGUSR1 signal handler is safe.
Tony Finch [Tue, 7 Jun 2011 15:48:44 +0000 (16:48 +0100)]
exiwhat: Ensure the SIGUSR1 signal handler is safe.

exiwhat sends a SIGUSR1 to all exim processes to make them write
their status to the process log. This is all done in the signal
handler, but the logging code makes a number of calls that are not
signal safe. These can all cause crashes or recursive locking in
libc.

Firstly, obtaining and formatting the timestamp is not safe.
Doing so is unnecessary since exiwhat strips off the timestamp.
This change removes timestamps from the process log.

Secondly, exim closes all the logs after writing the process
log. Closing syslog is not signal safe, and isn't necessary.
We now only close the process log after writing to it.

Thirdly, exim may calculate the process_log_path inside the signal
handler which involves some possibly-unsafe string handling code.
This change calculates the path when reading the configuration.

Fourthly, when exim creates the process log file it might have to
call the unsafe directory_create() though this is unlikely in
practice. After this change exim only calls log_create() in a
subprocess which is safe - it sometimes needs to do so anyway, if
it is running as root and needs to drop privileges.

The new code has no process log handling in log.c which eliminates
some awkward special cases. It uses very simple code to write to
the file in the signal handler, so it is obviously safe by inspection.

13 years agoEnsure we log the error message when unlink() fails.
Tony Finch [Tue, 7 Jun 2011 15:48:44 +0000 (16:48 +0100)]
Ensure we log the error message when unlink() fails.

See also commit ID 0761d44e

13 years agoDKIM Verification: Fix relaxed canon for empty headers w/o
Tom Kistner [Sun, 5 Jun 2011 16:08:36 +0000 (17:08 +0100)]
DKIM Verification: Fix relaxed canon for empty headers w/o
whitespace trailer

13 years agomalware.c: avoid arithmetic on a void pointer.
Tony Finch [Mon, 9 May 2011 10:20:26 +0000 (11:20 +0100)]
malware.c: avoid arithmetic on a void pointer.