From b1e5c9c5e51c0569a82ee5838ed755e3c7bae94f Mon Sep 17 00:00:00 2001 From: gshapiro Date: Thu, 28 Aug 2008 06:08:29 +0000 Subject: Merge sendmail 8.14.3 into HEAD. Note: As the first merge since the conversion to svn, it includes many propset changes to get the proper svn:eol-style and svn:mime-type on the files (as merged from the fixed up vendor/dist area). MFC after: 3 days --- contrib/sendmail/KNOWNBUGS | 13 ++++- contrib/sendmail/PGPKEYS | 65 +++++++++++++++++++++- contrib/sendmail/README | 4 +- contrib/sendmail/RELEASE_NOTES | 40 ++++++++++++- contrib/sendmail/cf/README | 6 +- contrib/sendmail/cf/cf/submit.cf | 8 +-- contrib/sendmail/cf/m4/proto.m4 | 12 ++-- contrib/sendmail/cf/m4/version.m4 | 6 +- contrib/sendmail/include/libmilter/mfapi.h | 6 +- contrib/sendmail/libmilter/Makefile.m4 | 2 +- .../sendmail/libmilter/docs/smfi_opensocket.html | 22 +++++--- contrib/sendmail/libmilter/docs/smfi_version.html | 24 +++++--- contrib/sendmail/libmilter/engine.c | 9 +-- contrib/sendmail/libmilter/worker.c | 6 +- contrib/sendmail/mail.local/mail.local.c | 31 +++++++++-- contrib/sendmail/makemap/makemap.8 | 7 ++- contrib/sendmail/makemap/makemap.c | 7 ++- contrib/sendmail/smrsh/README | 10 ++-- contrib/sendmail/smrsh/smrsh.c | 1 - contrib/sendmail/src/Makefile.m4 | 2 +- contrib/sendmail/src/README | 8 +-- contrib/sendmail/src/collect.c | 5 +- contrib/sendmail/src/conf.c | 24 ++++++-- contrib/sendmail/src/conf.h | 3 - contrib/sendmail/src/daemon.c | 18 +++--- contrib/sendmail/src/envelope.c | 16 +----- contrib/sendmail/src/err.c | 1 - contrib/sendmail/src/headers.c | 1 - contrib/sendmail/src/mailq.1 | 1 - contrib/sendmail/src/main.c | 14 ++++- contrib/sendmail/src/mci.c | 30 ++++++++-- contrib/sendmail/src/parseaddr.c | 9 ++- contrib/sendmail/src/queue.c | 8 +-- contrib/sendmail/src/ratectrl.c | 4 +- contrib/sendmail/src/readcf.c | 20 ++++++- contrib/sendmail/src/savemail.c | 2 - contrib/sendmail/src/sendmail.h | 20 ++++++- contrib/sendmail/src/sfsasl.c | 28 +++++++++- contrib/sendmail/src/sm_resolve.c | 6 +- contrib/sendmail/src/srvrsmtp.c | 53 ++++++++++++++---- contrib/sendmail/src/usersmtp.c | 5 +- contrib/sendmail/src/util.c | 9 +-- contrib/sendmail/src/version.c | 6 +- 43 files changed, 416 insertions(+), 156 deletions(-) (limited to 'contrib/sendmail') diff --git a/contrib/sendmail/KNOWNBUGS b/contrib/sendmail/KNOWNBUGS index 6c7adb1..998fb11 100644 --- a/contrib/sendmail/KNOWNBUGS +++ b/contrib/sendmail/KNOWNBUGS @@ -47,6 +47,17 @@ This list is not guaranteed to be complete. but some characters might be lost. Fix: obey RFC (2)822 and do not send lines that are longer than 1000 characters. +* milter communication fails if a single header is larger than 64K. + + If a single header is larger than 64KB (which is not possible in the + default configuration) then it cannot be transferred in one block to + libmilter and hence the communication fails. This can be avoided by + increasing the constant MILTER_CHUNK_SIZE in + include/libmilter/mfdef.h and recompiling sendmail, libmilter, and + all (statically linked) milters (or by using an undocumented compile + time option: _FFR_MAXDATASIZE; you have to read the source code in + order to use this properly). + * Sender addresses whose domain part cause a temporary A record lookup failure but have a valid MX record will be temporarily rejected in the default configuration. Solution: fix the DNS at the sender side. @@ -247,4 +258,4 @@ Kresolve sequence dnsmx canon be used if set instead of LOCAL_RELAY ($R). This will be fixed in a future version. -$Revision: 8.59 $, Last updated $Date: 2007/02/21 23:13:58 $ +$Revision: 8.60 $, Last updated $Date: 2007/12/04 01:16:50 $ diff --git a/contrib/sendmail/PGPKEYS b/contrib/sendmail/PGPKEYS index a6d7f5e..3f7e922 100644 --- a/contrib/sendmail/PGPKEYS +++ b/contrib/sendmail/PGPKEYS @@ -142,6 +142,69 @@ gpExpdV7qPrw9k01j5rod5PjZlG8zV0= -----END PGP PUBLIC KEY BLOCK----- Type Bits KeyID Created Expires Algorithm Use +pub 1024 0xF6B30729 2008-01-18 ---------- RSA Sign & Encrypt +f16 Fingerprint16 = 07 FB 9A F9 F7 94 4B E4 0F 28 D1 8E 23 6F A2 B0 +uid Sendmail Signing Key/2008 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.8 (Darwin) + +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 +5282RCnsKroyWAhV8KjoJer1hTKCsu58Lqrv +=jDs3 +-----END PGP PUBLIC KEY BLOCK----- + +Type Bits KeyID Created Expires Algorithm Use pub 1024 0x7093B841 2006-12-16 ---------- RSA Sign & Encrypt f16 Fingerprint16 = D9 FD C5 6B EE 1E 7A A8 CE 27 D9 B9 55 8B 56 B6 uid Sendmail Signing Key/2007 @@ -1729,4 +1792,4 @@ DnF3FZZEzV7oqPwC2jzv/1dD6GFhtgy0cnyoPGUJCyc= =nES8 -----END PGP PUBLIC KEY BLOCK----- -$Revision: 8.25 $, Last updated $Date: 2007/01/02 22:38:08 $ +$Revision: 8.26 $, Last updated $Date: 2008/01/22 06:20:27 $ diff --git a/contrib/sendmail/README b/contrib/sendmail/README index b0c25e5..a8db162 100644 --- a/contrib/sendmail/README +++ b/contrib/sendmail/README @@ -312,7 +312,7 @@ nicer to animals and plants. If the Berkeley DB include files are installed in a location other than those which your compiler searches, you will need to provide that directory when building: - Build -I/path/to/include/directory + ./Build -I/path/to/include/directory If you are using Berkeley DB versions 1.85 or 1.86, you are *strongly* urged to upgrade to DB version 2 or later, available from @@ -464,4 +464,4 @@ sendmail Source for the sendmail program itself. test Some test scripts (currently only for compilation aids). vacation Source for the vacation program. NOT PART OF SENDMAIL! -$Revision: 8.93 $, Last updated $Date: 2005/09/16 20:08:50 $ +$Revision: 8.94 $, Last updated $Date: 2008/02/12 16:40:05 $ diff --git a/contrib/sendmail/RELEASE_NOTES b/contrib/sendmail/RELEASE_NOTES index 8a0b51c..0d8ed86 100644 --- a/contrib/sendmail/RELEASE_NOTES +++ b/contrib/sendmail/RELEASE_NOTES @@ -1,11 +1,47 @@ SENDMAIL RELEASE NOTES - $Id: RELEASE_NOTES,v 8.1909 2007/10/31 16:04:13 ca Exp $ + $Id: RELEASE_NOTES,v 8.1926 2008/05/03 03:34:26 ca Exp $ This listing shows the version of the sendmail binary, the version of the sendmail configuration files, the date of release, and a summary of the changes in that release. +8.14.3/8.14.3 2008/05/03 + During ruleset processing the generation of a key for a map + lookup and the parsing of the default value was broken + for some macros, e.g., $|, which caused the BlankSub + character to be inserted into the workspace and thus + failures, e.g., rules that should have matched did not. + 8.14.2 caused a regression: it accessed (macro) storage which was + freed before. First instance of the problem reported by + Matthew Dillon of DragonFlyBSD; variations of the same + bug reported by Todd C. Miller of OpenBSD, Moritz + Jodeit, and Dave Hayes. + Improve pathname length checks for persistent host status. Patch + from Joerg Sonnenberger of DragonFlyBSD. + Reword misleading SMTP reply text for FEATURE(`badmx'). Problem + noted by Beth Halsema. + The read timeout was fixed to be Timeout.datablock if STARTTLS + was activated. This may cause problems if that value + is lowered from its default. Problem noted by Jens Elkner. + CONFIG: Using LOCAL_TLS_CLIENT caused the tls_client ruleset + to operate incorrectly. Problem found by Werner Wiethege. + LIBMILTER: Omitting some protocol steps via the xxfi_negotiate() + callback did not work properly. The patchlevel of + libmilter has been set to 1 so a milter can determine + whether libmilter contains this fix. + MAKEMAP: If a delimiter is specified (-t) use that also when + dumping a map. Patch from Todd C. Miller of OpenBSD. + Portability: + Add support for Darwin 9.x (Mac OS X 10.5). + Support shared libraries in Darwin 8 and 9. Patch from + Chris Behrens of Concentric. + Add support for SCO OpenServer 6, patch from Boyd Gerber. + DEVTOOLS: Clarify that confSHAREDLIBDIR requires a trailing path. + Added Files: + devtools/OS/Darwin.9.x + devtools/OS/OSR.i386 + 8.14.2/8.14.2 2007/11/01 If a message was queued and it contained 8 bit characters in a From: or To: header, then those characters could be @@ -24,7 +60,7 @@ summary of the changes in that release. Prior to 8.14 this happened only if milter could delete recipients. ClientRate should trigger when the limit was exceeded (as - documented), not when it was reached. Patch from + documented), not when it was reached. Patch from John Beck of Sun Microsystems. Force a queue run for -qGqueuegroup even if no runners are specified (R=0) and forking (F=f) is requested. diff --git a/contrib/sendmail/cf/README b/contrib/sendmail/cf/README index 81689ad..43737f6 100644 --- a/contrib/sendmail/cf/README +++ b/contrib/sendmail/cf/README @@ -1008,7 +1008,9 @@ virtusertable A domain-specific form of aliasing, allowing multiple MASQUERADE_DOMAIN_FILE, see below). If VIRTUSER_DOMAIN or VIRTUSER_DOMAIN_FILE is used, then the entries of class {VirtHost} are added to class {R}, i.e., relaying is allowed - to (and from) those domains. The default map definition is: + to (and from) those domains, which by default includes also + all subdomains (see relay_hosts_only). The default map + definition is: hash /etc/mail/virtusertable @@ -4699,4 +4701,4 @@ M4 DIVERSIONS 8 DNS based blacklists 9 special local rulesets (1 and 2) -$Revision: 8.722 $, Last updated $Date: 2007/04/03 21:26:58 $ +$Revision: 8.724 $, Last updated $Date: 2008/02/15 23:05:32 $ diff --git a/contrib/sendmail/cf/cf/submit.cf b/contrib/sendmail/cf/cf/submit.cf index 22a574c..11f3820 100644 --- a/contrib/sendmail/cf/cf/submit.cf +++ b/contrib/sendmail/cf/cf/submit.cf @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@nother.smi.sendmail.com on Wed Oct 31 09:24:27 PDT 2007 -##### in /extra/home/ca/sm-8.14.2/OpenSource/sendmail-8.14.2/cf/cf +##### built by ca@wiz.smi.sendmail.com on Fri May 2 20:39:00 PDT 2008 +##### in /extra/home/ca/sm-8.14.3/OpenSource/sendmail-8.14.3/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -35,7 +35,7 @@ ##### $Id: no_default_msa.m4,v 8.2 2001/02/14 05:03:22 gshapiro Exp $ ##### -##### $Id: proto.m4,v 8.732 2007/04/20 00:53:30 ca Exp $ ##### +##### $Id: proto.m4,v 8.734 2008/01/24 23:42:01 ca Exp $ ##### # level 10 config file format V10/Berkeley @@ -114,7 +114,7 @@ D{MTAHost}[127.0.0.1] # Configuration version number -DZ8.14.2/Submit +DZ8.14.3/Submit ############### diff --git a/contrib/sendmail/cf/m4/proto.m4 b/contrib/sendmail/cf/m4/proto.m4 index 6ef2f1c..4e314b3 100644 --- a/contrib/sendmail/cf/m4/proto.m4 +++ b/contrib/sendmail/cf/m4/proto.m4 @@ -13,7 +13,7 @@ divert(-1) # divert(0) -VERSIONID(`$Id: proto.m4,v 8.732 2007/04/20 00:53:30 ca Exp $') +VERSIONID(`$Id: proto.m4,v 8.734 2008/01/24 23:42:01 ca Exp $') # level CF_LEVEL config file format V`'CF_LEVEL/ifdef(`VENDOR_NAME', `VENDOR_NAME', `Berkeley') @@ -1956,7 +1956,7 @@ R<$+><:$*:><$*> $#error $@ 4.1.2 $: "450 MX lookup failure for "$1 # Recursively run badmx check on each mx. R<$*><:$+:$*><:$*> <$1><:$3><: $4 $(badmx $2 $):> # See if any of them fail. -R<$*><$*><$*:$*> $#error $@ 5.1.2 $:"550 Illegal MX record for recipient host "$1 +R<$*><$*><$*:$*> $#error $@ 5.1.2 $:"550 Illegal MX record for host "$1 # Reverse the mxlists so we can use the same argument order again. R<$*><$*><$*> $:<$1><$3><$2> R<$*><:$+:$*><:$*> <$1><:$3><:$4 $(dnsA $2 $) :> @@ -1965,7 +1965,7 @@ R<$*><:$+:$*><:$*> <$1><:$3><:$4 $(dnsA $2 $) :> R<$*><$*><$*> $:<$1><$3><$2> R<$*><:$+:$*><:$*> <$1><:$3><:$4 $(BadMXIP $2 $) :> -R<$*><$*><$*:$*> $#error $@ 5.1.2 $:"550 Invalid MX record for recipient host "$1', +R<$*><$*><$*:$*> $#error $@ 5.1.2 $:"550 Invalid MX record for host "$1', `dnl') @@ -2686,9 +2686,9 @@ dnl MAIL: called from check_mail dnl STARTTLS: called from smtp() after STARTTLS has been accepted Stls_client ifdef(`_LOCAL_TLS_CLIENT_', `dnl -R$* $: $1 $| $>"Local_tls_client" $1 -R$* $| $#$* $#$2 -R$* $| $* $: $1', `dnl') +R$* $: $1 $>"Local_tls_client" $1 +R$* $#$* $#$2 +R$* $* $: $1', `dnl') ifdef(`_ACCESS_TABLE_', `dnl dnl store name of other side R$* $: $(macro {TLS_Name} $@ $&{server_name} $) $1 diff --git a/contrib/sendmail/cf/m4/version.m4 b/contrib/sendmail/cf/m4/version.m4 index 9b34f1a..bd722ac 100644 --- a/contrib/sendmail/cf/m4/version.m4 +++ b/contrib/sendmail/cf/m4/version.m4 @@ -1,6 +1,6 @@ divert(-1) # -# Copyright (c) 1998-2007 Sendmail, Inc. and its suppliers. +# Copyright (c) 1998-2008 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 @@ -11,8 +11,8 @@ divert(-1) # the sendmail distribution. # # -VERSIONID(`$Id: version.m4,v 8.186 2007/10/31 16:04:13 ca Exp $') +VERSIONID(`$Id: version.m4,v 8.195 2008/04/17 17:04:30 ca Exp $') # divert(0) # Configuration version number -DZ8.14.2`'ifdef(`confCF_VERSION', `/confCF_VERSION') +DZ8.14.3`'ifdef(`confCF_VERSION', `/confCF_VERSION') diff --git a/contrib/sendmail/include/libmilter/mfapi.h b/contrib/sendmail/include/libmilter/mfapi.h index 4338645..7d7fb1d 100644 --- a/contrib/sendmail/include/libmilter/mfapi.h +++ b/contrib/sendmail/include/libmilter/mfapi.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2004, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2004, 2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -7,7 +7,7 @@ * the sendmail distribution. * * - * $Id: mfapi.h,v 8.77 2006/11/02 02:44:07 ca Exp $ + * $Id: mfapi.h,v 8.78 2008/02/27 22:30:34 ca Exp $ */ /* @@ -18,7 +18,7 @@ # define _LIBMILTER_MFAPI_H 1 #ifndef SMFI_VERSION -# define SMFI_VERSION 0x01000000 /* libmilter version number */ +# define SMFI_VERSION 0x01000001 /* libmilter version number */ #endif /* ! SMFI_VERSION */ #define SM_LM_VRS_MAJOR(v) (((v) & 0x7f000000) >> 24) diff --git a/contrib/sendmail/libmilter/Makefile.m4 b/contrib/sendmail/libmilter/Makefile.m4 index 7902c2f..929ec75 100644 --- a/contrib/sendmail/libmilter/Makefile.m4 +++ b/contrib/sendmail/libmilter/Makefile.m4 @@ -1,4 +1,4 @@ -dnl $Id: Makefile.m4,v 8.78 2007/02/05 19:21:29 ca Exp $ +dnl $Id: Makefile.m4,v 8.80 2008/04/08 05:23:44 ca Exp $ include(confBUILDTOOLSDIR`/M4/switch.m4') dnl only required for compilation of EXTRAS diff --git a/contrib/sendmail/libmilter/docs/smfi_opensocket.html b/contrib/sendmail/libmilter/docs/smfi_opensocket.html index 151af07..53ea62b 100644 --- a/contrib/sendmail/libmilter/docs/smfi_opensocket.html +++ b/contrib/sendmail/libmilter/docs/smfi_opensocket.html @@ -2,7 +2,7 @@ smfi_opensocket

smfi_opensocket

@@ -24,16 +24,21 @@ filter. - + +and the filter. +This allows the calling application to ensure that the +socket can be created. +If this is not called, +smfi_main() will do so implicitly. +
Called WhenCalled only from program mainline, before calling -smfi_main().Called only from program mainline, +after calling smfi_setconn() and smfi_register(), +but before calling smfi_main(). +
Effects smfi_opensocket attempts to create the socket specified previously by a call to smfi_setconn() which will be the interface between MTAs -and the filter. This allows the calling application to ensure that the -socket can be created. If this is not called, smfi_main() will -do so implicitly.
@@ -58,7 +63,8 @@ do so implicitly.
  • The interface socket could not be created for any reason.
  • rmsocket was true, and either the socket could not be examined, or exists and could not be removed. -
  • smfi_setconn() has not been called. +
  • smfi_setconn() or smfi_register() + have not been called. Otherwise, it will return MI_SUCCESS @@ -68,7 +74,7 @@ Otherwise, it will return MI_SUCCESS
    -Copyright (c) 2003 Sendmail, Inc. and its suppliers. +Copyright (c) 2003, 2008 Sendmail, Inc. and its suppliers. All rights reserved.
    By using this file, you agree to the terms and conditions set diff --git a/contrib/sendmail/libmilter/docs/smfi_version.html b/contrib/sendmail/libmilter/docs/smfi_version.html index 3c1fc05..6dd451d 100644 --- a/contrib/sendmail/libmilter/docs/smfi_version.html +++ b/contrib/sendmail/libmilter/docs/smfi_version.html @@ -2,7 +2,7 @@ smfi_version()

    smfi_version()

    @@ -59,24 +59,30 @@ Get the (runtime) version of libmilter. Note: the compile time version of libmilter is available in the macro SMFI_VERSION. -A milter can check this macro to determine which functions to use -(at compile time via C preprocessor statements). -Using this macro and the -smfi_version() -function, -a milter can determine at runtime whether it has been (dynamically) -linked against the expected libmilter version. To extract the major and minor version as well as the current patch level from this macro, the macros SM_LM_VRS_MAJOR(v), SM_LM_VRS_MINOR(v), and SM_LM_VRS_PLVL(v) can be used, respectively. +A milter can check the +SMFI_VERSION +macro to determine which functions to use +(at compile time via C preprocessor statements). +Using this macro and the +smfi_version() +function, +a milter can determine at runtime whether it has been (dynamically) +linked against the expected libmilter version. +Such a function should only compare the major and minor version, +not the patch level, +i.e., the libmilter library will be compatible despite +different patch levels.
    -Copyright (c) 2006, 2007 Sendmail, Inc. and its suppliers. +Copyright (c) 2006-2008 Sendmail, Inc. and its suppliers. All rights reserved.
    By using this file, you agree to the terms and conditions set diff --git a/contrib/sendmail/libmilter/engine.c b/contrib/sendmail/libmilter/engine.c index a024312..9002a0b 100644 --- a/contrib/sendmail/libmilter/engine.c +++ b/contrib/sendmail/libmilter/engine.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2004, 2006, 2007 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2004, 2006-2008 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -9,7 +9,7 @@ */ #include -SM_RCSID("@(#)$Id: engine.c,v 8.159 2007/04/23 22:22:50 ca Exp $") +SM_RCSID("@(#)$Id: engine.c,v 8.162 2008/02/27 01:34:14 ca Exp $") #include "libmilter.h" @@ -1001,6 +1001,7 @@ st_optionneg(g) (long) ctx->ctx_id, ctx->ctx_mta_pflags, i); return _SMFIS_ABORT; } + fix_stm(ctx); if (ctx->ctx_dbg > 3) sm_dprintf("[%ld] milter_negotiate:" @@ -1725,9 +1726,9 @@ mi_rd_socket_ready (sd) int n; int nerr = 0; #if SM_CONF_POLL - struct pollfd pfd; + struct pollfd pfd; #else /* SM_CONF_POLL */ - fd_set rd_set, exc_set; + fd_set rd_set, exc_set; #endif /* SM_CONF_POLL */ do diff --git a/contrib/sendmail/libmilter/worker.c b/contrib/sendmail/libmilter/worker.c index 0402678..fd4b66e 100644 --- a/contrib/sendmail/libmilter/worker.c +++ b/contrib/sendmail/libmilter/worker.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003-2004, 2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 2003-2004, 2007 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -11,7 +11,7 @@ */ #include -SM_RCSID("@(#)$Id: worker.c,v 8.9 2006/12/18 18:26:51 ca Exp $") +SM_RCSID("@(#)$Id: worker.c,v 8.10 2007/12/03 22:06:05 ca Exp $") #include "libmilter.h" @@ -263,8 +263,6 @@ mi_pool_controller_init() return MI_FAILURE; } - POOL_LEV_DPRINTF(4, ("PIPE r=[%d] w=[%d]", RD_PIPE, WR_PIPE)); - (void) smutex_init(&Tskmgr.tm_w_mutex); (void) scond_init(&Tskmgr.tm_w_cond); diff --git a/contrib/sendmail/mail.local/mail.local.c b/contrib/sendmail/mail.local/mail.local.c index cba40a7..e20d915 100644 --- a/contrib/sendmail/mail.local/mail.local.c +++ b/contrib/sendmail/mail.local/mail.local.c @@ -20,7 +20,7 @@ SM_IDSTR(copyright, Copyright (c) 1990, 1993, 1994\n\ The Regents of the University of California. All rights reserved.\n") -SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.254 2006/10/12 22:23:45 ca Exp $") +SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.256 2008/02/19 07:13:30 gshapiro Exp $") #include #include @@ -81,6 +81,15 @@ SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.254 2006/10/12 22:23:45 ca Exp $") # endif /* HASHSPOOLMD5 */ #endif /* HASHSPOOL */ +#if _FFR_SPOOL_PATH + /* + ** Override path to mail store at run time (using -p). + ** From: Eugene Grosbein of Svyaz Service JSC + ** See: http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/114195 + ** NOTE: Update man page before adding this to a release. + */ +#endif /* _FFR_SPOOL_PATH */ + #ifndef LOCKTO_RM # define LOCKTO_RM 300 /* timeout for stale lockfile removal */ @@ -231,7 +240,11 @@ main(argc, argv) #if HASHSPOOL while ((ch = getopt(argc, argv, "7BbdD:f:h:r:lH:p:ns")) != -1) #else /* HASHSPOOL */ +# if _FFR_SPOOL_PATH + while ((ch = getopt(argc, argv, "7BbdD:f:h:r:lp:s")) != -1) +# else /* _FFR_SPOOL_PATH */ while ((ch = getopt(argc, argv, "7BbdD:f:h:r:ls")) != -1) +# endif /* _FFR_SPOOL_PATH */ #endif /* HASHSPOOL */ { switch(ch) @@ -319,6 +332,12 @@ main(argc, argv) } break; + case 'n': + StripRcptDomain = false; + break; +#endif /* HASHSPOOL */ + +#if HASHSPOOL || _FFR_SPOOL_PATH case 'p': if (optarg == NULL || *optarg == '\0') { @@ -332,11 +351,7 @@ main(argc, argv) usage(); } break; - - case 'n': - StripRcptDomain = false; - break; -#endif /* HASHSPOOL */ +#endif /* HASHSPOOL || _FFR_SPOOL_PATH */ case '?': default: @@ -1582,7 +1597,11 @@ void usage() { ExitVal = EX_USAGE; +# if _FFR_SPOOL_PATH + mailerr(NULL, "usage: mail.local [-7] [-B] [-b] [-d] [-l] [-s] [-f from|-r from] [-h filename] [-p path] user ..."); +# else /* _FFR_SPOOL_PATH */ mailerr(NULL, "usage: mail.local [-7] [-B] [-b] [-d] [-l] [-s] [-f from|-r from] [-h filename] user ..."); +# endif /* _FFR_SPOOL_PATH */ sm_exit(ExitVal); } diff --git a/contrib/sendmail/makemap/makemap.8 b/contrib/sendmail/makemap/makemap.8 index 96338e7..ca8a949 100644 --- a/contrib/sendmail/makemap/makemap.8 +++ b/contrib/sendmail/makemap/makemap.8 @@ -8,9 +8,9 @@ .\" the sendmail distribution. .\" .\" -.\" $Id: makemap.8,v 8.30 2002/06/27 23:41:04 gshapiro Exp $ +.\" $Id: makemap.8,v 8.31 2008/05/02 23:07:48 ca Exp $ .\" -.TH MAKEMAP 8 "$Date: 2002/06/27 23:41:04 $" +.TH MAKEMAP 8 "$Date: 2008/05/02 23:07:48 $" .SH NAME makemap \- create database maps for sendmail @@ -156,7 +156,8 @@ This includes checking for hard or symbolic links in world writable directories. .TP .B \-t -Use the specified delimiter instead of white space. +Use the specified delimiter instead of white space +(also for dumping a map). .TP .B \-u dump (unmap) the content of the database to standard output. diff --git a/contrib/sendmail/makemap/makemap.c b/contrib/sendmail/makemap/makemap.c index 7302748..cacec00 100644 --- a/contrib/sendmail/makemap/makemap.c +++ b/contrib/sendmail/makemap/makemap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2002, 2004 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2002, 2004, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1992 Eric P. Allman. All rights reserved. * Copyright (c) 1992, 1993 @@ -20,7 +20,7 @@ SM_IDSTR(copyright, Copyright (c) 1992, 1993\n\ The Regents of the University of California. All rights reserved.\n") -SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.178 2007/05/11 18:45:39 ca Exp $") +SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.179 2008/04/14 02:06:16 ca Exp $") #include @@ -378,9 +378,10 @@ main(argc, argv) break; (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, - "%.*s\t%.*s\n", + "%.*s%c%.*s\n", (int) db_key.size, (char *) db_key.data, + (sep != '\0') ? sep : '\t', (int) db_val.size, (char *)db_val.data); diff --git a/contrib/sendmail/smrsh/README b/contrib/sendmail/smrsh/README index 0719a3f..452b208 100644 --- a/contrib/sendmail/smrsh/README +++ b/contrib/sendmail/smrsh/README @@ -24,7 +24,7 @@ Unix C compilers. smrsh should build on most systems with the enclosed Build script: - host.domain% sh Build + host.domain% sh ./Build To compile smrsh.c by hand, use the following command: @@ -36,13 +36,13 @@ compiler, you should compile with the -Bstatic option. host.domain% cc -Bstatic -o smrsh smrsh.c or - host.domain% sh Build LDOPTS=-Bstatic + host.domain% sh ./Build LDOPTS=-Bstatic With gcc, the GNU C compiler, use the -static option. host.domain% cc -static -o smrsh smrsh.c or - host.domain% sh Build LDOPTS=-static + host.domain% sh ./Build LDOPTS=-static The following C defines can be set defined to change the search path and the bin directory used by smrsh. @@ -58,7 +58,7 @@ conf_smrsh_ENVDEF. As root, install smrsh in /usr/libexec. Using the Build script: - host.domain# sh Build install + host.domain# sh ./Build install For manual installation: install smrsh in the /usr/libexec directory, with mode 511. @@ -163,4 +163,4 @@ a typical system follows: host.domain# /usr/sbin/sendmail -bd -q30m -$Revision: 8.9 $, Last updated $Date: 2003/05/26 04:30:58 $ +$Revision: 8.10 $, Last updated $Date: 2008/02/12 16:40:06 $ diff --git a/contrib/sendmail/smrsh/smrsh.c b/contrib/sendmail/smrsh/smrsh.c index 69234b7..284ffef 100644 --- a/contrib/sendmail/smrsh/smrsh.c +++ b/contrib/sendmail/smrsh/smrsh.c @@ -9,7 +9,6 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ */ #include diff --git a/contrib/sendmail/src/Makefile.m4 b/contrib/sendmail/src/Makefile.m4 index b2bfa1a..fd015b4 100644 --- a/contrib/sendmail/src/Makefile.m4 +++ b/contrib/sendmail/src/Makefile.m4 @@ -1,4 +1,4 @@ -dnl $Id: Makefile.m4,v 8.112 2007/10/17 21:29:43 ca Exp $ +dnl $Id: Makefile.m4,v 8.115 2008/03/27 16:13:33 ca Exp $ include(confBUILDTOOLSDIR`/M4/switch.m4') define(`confREQUIRE_LIBSM', `true') diff --git a/contrib/sendmail/src/README b/contrib/sendmail/src/README index 2039674..34313fc 100644 --- a/contrib/sendmail/src/README +++ b/contrib/sendmail/src/README @@ -9,7 +9,7 @@ # the sendmail distribution. # # -# $Id: README,v 8.390 2006/11/13 22:27:27 ca Exp $ +# $Id: README,v 8.391 2008/02/12 16:38:21 ca Exp $ # This directory contains the source files for sendmail(TM). @@ -41,7 +41,7 @@ Sendmail is a trademark of Sendmail, Inc. By far, the easiest way to compile sendmail is to use the "Build" script: - sh Build + sh ./Build This uses the "uname" command to figure out what architecture you are on and creates a proper Makefile accordingly. It also creates a @@ -52,7 +52,7 @@ read the note below in the OPERATING SYSTEM AND COMPILE QUIRKS section. If you need to look at other include or library directories, use the -I or -L flags on the command line, e.g., - sh Build -I/usr/sww/include -L/usr/sww/lib + sh ./Build -I/usr/sww/include -L/usr/sww/lib It's also possible to create local site configuration in the file site.config.m4 (or another file settable with the -f flag). This @@ -1847,4 +1847,4 @@ util.c Some general purpose routines used by sendmail. version.c The version number and information about this version of sendmail. -(Version $Revision: 8.390 $, last update $Date: 2006/11/13 22:27:27 $ ) +(Version $Revision: 8.391 $, last update $Date: 2008/02/12 16:38:21 $ ) diff --git a/contrib/sendmail/src/collect.c b/contrib/sendmail/src/collect.c index 56fed0a..0a2cdab 100644 --- a/contrib/sendmail/src/collect.c +++ b/contrib/sendmail/src/collect.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -13,7 +13,7 @@ #include -SM_RCSID("@(#)$Id: collect.c,v 8.280 2006/11/29 00:20:40 ca Exp $") +SM_RCSID("@(#)$Id: collect.c,v 8.282 2008/01/31 18:48:29 ca Exp $") static void eatfrom __P((char *volatile, ENVELOPE *)); static void collect_doheader __P((ENVELOPE *)); @@ -308,6 +308,7 @@ collect(fp, smtpmode, hdrp, e, rsetsize) dbto = smtpmode ? ((int) TimeOuts.to_datablock * 1000) : SM_TIME_FOREVER; sm_io_setinfo(fp, SM_IO_WHAT_TIMEOUT, &dbto); + set_tls_rd_tmo(TimeOuts.to_datablock); c = SM_IO_EOF; inputerr = false; headeronly = hdrp != NULL; diff --git a/contrib/sendmail/src/conf.c b/contrib/sendmail/src/conf.c index e892cef..bf97057 100644 --- a/contrib/sendmail/src/conf.c +++ b/contrib/sendmail/src/conf.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2007 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -9,12 +9,11 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ */ #include -SM_RCSID("@(#)$Id: conf.c,v 8.1136 2007/10/10 00:06:45 ca Exp $") +SM_RCSID("@(#)$Id: conf.c,v 8.1141 2008/04/14 02:09:35 ca Exp $") #include #include @@ -1514,7 +1513,7 @@ getla() sm_dprintf("getla: symbol address = %#lx\n", (unsigned long) Nl[X_AVENRUN].n_value); if (lseek(kmem, (off_t) Nl[X_AVENRUN].n_value, SEEK_SET) == -1 || - read(kmem, (char *) avenrun, sizeof(avenrun)) < sizeof(avenrun)) + read(kmem, (char *) avenrun, sizeof(avenrun)) != sizeof(avenrun)) { /* thank you Ian */ if (tTd(3, 1)) @@ -1836,7 +1835,7 @@ getla(void) if (lseek(kmem, CAST_SYSMP(sysmp(MP_KERNADDR, MPKA_AVENRUN)), SEEK_SET) == -1 || - read(kmem, (char *) avenrun, sizeof(avenrun)) < sizeof(avenrun)) + read(kmem, (char *) avenrun, sizeof(avenrun)) != sizeof(avenrun)) { if (tTd(3, 1)) sm_dprintf("getla: lseek or read: %s\n", @@ -1944,6 +1943,13 @@ getla() } r = read(afd, &avenrun, sizeof(avenrun)); + if (r != sizeof(avenrun)) + { + sm_syslog(LOG_ERR, NOQID, + "can't read %s: %s", _PATH_AVENRUN, + r == -1 ? sm_errstring(errno) : "short read"); + return -1; + } if (tTd(3, 5)) sm_dprintf("getla: avenrun = %d\n", avenrun); @@ -6025,6 +6031,10 @@ char *FFRCompileOptions[] = /* DefaultAuthInfo doesn't really work in 8.13 anymore. */ "_FFR_ALLOW_SASLINFO", #endif /* _FFR_ALLOW_SASLINFO */ +#if _FFR_BADRCPT_SHUTDOWN + /* shut down connection (421) if there are too many bad RCPTs */ + "_FFR_BADRCPT_SHUTDOWN", +#endif /* _FFR_BADRCPT_SHUTDOWN */ #if _FFR_BESTMX_BETTER_TRUNCATION /* Better truncation of list of MX records for dns map. */ "_FFR_BESTMX_BETTER_TRUNCATION", @@ -6165,6 +6175,10 @@ char *FFRCompileOptions[] = /* Ignore extensions offered in response to HELO */ "_FFR_IGNORE_EXT_ON_HELO", #endif /* _FFR_IGNORE_EXT_ON_HELO */ +#if _FFR_LOCAL_DAEMON + /* Local daemon mode (-bl) which only accepts loopback connections */ + "_FFR_LOCAL_DAEMON", +#endif /* _FFR_LOCAL_DAEMON */ #if _FFR_MAXDATASIZE /* ** It is possible that a header is larger than MILTER_CHUNK_SIZE, diff --git a/contrib/sendmail/src/conf.h b/contrib/sendmail/src/conf.h index 99ed47d..f1386c4 100644 --- a/contrib/sendmail/src/conf.h +++ b/contrib/sendmail/src/conf.h @@ -11,9 +11,6 @@ * * * $Id: conf.h,v 8.574 2006/11/29 00:36:06 ca Exp $ - * - * $FreeBSD$ - * */ /* diff --git a/contrib/sendmail/src/daemon.c b/contrib/sendmail/src/daemon.c index 76b5b58..06a36c7 100644 --- a/contrib/sendmail/src/daemon.c +++ b/contrib/sendmail/src/daemon.c @@ -14,7 +14,7 @@ #include #include "map.h" -SM_RCSID("@(#)$Id: daemon.c,v 8.678 2007/03/08 00:33:40 ca Exp $") +SM_RCSID("@(#)$Id: daemon.c,v 8.680 2008/02/14 00:20:26 ca Exp $") #if defined(SOCK_STREAM) || defined(__GNU_LIBRARY__) # define USE_SOCK_STREAM 1 @@ -1257,7 +1257,8 @@ setupdaemon(daemonaddr) #if NETINET case AF_INET: if (daemonaddr->sin.sin_addr.s_addr == 0) - daemonaddr->sin.sin_addr.s_addr = INADDR_ANY; + daemonaddr->sin.sin_addr.s_addr = + LocalDaemon ? htonl(INADDR_LOOPBACK) : INADDR_ANY; port = daemonaddr->sin.sin_port; break; #endif /* NETINET */ @@ -1265,7 +1266,8 @@ setupdaemon(daemonaddr) #if NETINET6 case AF_INET6: if (IN6_IS_ADDR_UNSPECIFIED(&daemonaddr->sin6.sin6_addr)) - daemonaddr->sin6.sin6_addr = in6addr_any; + daemonaddr->sin6.sin6_addr = + LocalDaemon ? in6addr_loopback : in6addr_any; port = daemonaddr->sin6.sin6_port; break; #endif /* NETINET6 */ @@ -2204,7 +2206,8 @@ makeconnection(host, port, mci, e, enough) #if NETINET case AF_INET: if (clt_addr.sin.sin_addr.s_addr == 0) - clt_addr.sin.sin_addr.s_addr = INADDR_ANY; + clt_addr.sin.sin_addr.s_addr = LocalDaemon ? + htonl(INADDR_LOOPBACK) : INADDR_ANY; else clt_bind = true; if (clt_addr.sin.sin_port != 0) @@ -2215,7 +2218,8 @@ makeconnection(host, port, mci, e, enough) #if NETINET6 case AF_INET6: if (IN6_IS_ADDR_UNSPECIFIED(&clt_addr.sin6.sin6_addr)) - clt_addr.sin6.sin6_addr = in6addr_any; + clt_addr.sin6.sin6_addr = LocalDaemon ? + in6addr_loopback : in6addr_any; else clt_bind = true; socksize = sizeof(struct sockaddr_in6); @@ -3274,7 +3278,7 @@ myhostname(hostbuf, size) if (strchr(hostbuf, '.') == NULL && !getcanonname(hostbuf, size, true, NULL)) { - sm_syslog(LOG_CRIT, NOQID, + sm_syslog(LocalDaemon ? LOG_WARNING : LOG_CRIT, NOQID, "My unqualified host name (%s) unknown; sleeping for retry", hostbuf); message("My unqualified host name (%s) unknown; sleeping for retry", @@ -3282,7 +3286,7 @@ myhostname(hostbuf, size) (void) sleep(60); if (!getcanonname(hostbuf, size, true, NULL)) { - sm_syslog(LOG_ALERT, NOQID, + sm_syslog(LocalDaemon ? LOG_WARNING : LOG_ALERT, NOQID, "unable to qualify my own domain name (%s) -- using short name", hostbuf); message("WARNING: unable to qualify my own domain name (%s) -- using short name", diff --git a/contrib/sendmail/src/envelope.c b/contrib/sendmail/src/envelope.c index 20b0ba2..641c621a 100644 --- a/contrib/sendmail/src/envelope.c +++ b/contrib/sendmail/src/envelope.c @@ -13,7 +13,7 @@ #include -SM_RCSID("@(#)$Id: envelope.c,v 8.304 2007/04/18 17:15:49 ca Exp $") +SM_RCSID("@(#)$Id: envelope.c,v 8.305 2008/03/31 16:32:13 ca Exp $") /* ** CLRSESSENVELOPE -- clear session oriented data in an envelope @@ -75,7 +75,7 @@ newenvelope(e, parent, rpool) register ENVELOPE *parent; SM_RPOOL_T *rpool; { - int sendmode, dm; + int sendmode; /* ** This code used to read: @@ -86,16 +86,8 @@ newenvelope(e, parent, rpool) ** This meant macvalue() could go into an infinite loop. */ - dm = DM_NOTSET; if (parent != NULL) - { - char *str; - sendmode = parent->e_sendmode; - str = macvalue(macid("{deliveryMode}"), parent); - if (str != NULL) - dm = (int) str[0]; - } else sendmode = DM_NOTSET; @@ -144,9 +136,7 @@ newenvelope(e, parent, rpool) if (CurEnv->e_xfp != NULL) (void) sm_io_flush(CurEnv->e_xfp, SM_TIME_DEFAULT); if (sendmode != DM_NOTSET) - e->e_sendmode = sendmode; - if (dm != DM_NOTSET) - set_delivery_mode(dm, e); + set_delivery_mode(sendmode, e); return e; } diff --git a/contrib/sendmail/src/err.c b/contrib/sendmail/src/err.c index 89b0736..5825666 100644 --- a/contrib/sendmail/src/err.c +++ b/contrib/sendmail/src/err.c @@ -9,7 +9,6 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ */ #include diff --git a/contrib/sendmail/src/headers.c b/contrib/sendmail/src/headers.c index 7e223db..8e70fed 100644 --- a/contrib/sendmail/src/headers.c +++ b/contrib/sendmail/src/headers.c @@ -9,7 +9,6 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ */ #include diff --git a/contrib/sendmail/src/mailq.1 b/contrib/sendmail/src/mailq.1 index 6b2136f..62f123c 100644 --- a/contrib/sendmail/src/mailq.1 +++ b/contrib/sendmail/src/mailq.1 @@ -133,4 +133,3 @@ The .B mailq command appeared in 4.0BSD. -.\" $FreeBSD$ diff --git a/contrib/sendmail/src/main.c b/contrib/sendmail/src/main.c index 8680add..d68d5b5 100644 --- a/contrib/sendmail/src/main.c +++ b/contrib/sendmail/src/main.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -26,7 +26,7 @@ SM_UNUSED(static char copyright[]) = The Regents of the University of California. All rights reserved.\n"; #endif /* ! lint */ -SM_RCSID("@(#)$Id: main.c,v 8.963 2007/06/29 20:07:37 ca Exp $") +SM_RCSID("@(#)$Id: main.c,v 8.967 2008/03/31 16:32:13 ca Exp $") #if NETINET || NETINET6 @@ -302,6 +302,9 @@ main(argc, argv, envp) ExitStat = EX_OK; SubmitMode = SUBMIT_UNKNOWN; +#if _FFR_LOCAL_DAEMON + LocalDaemon = false; +#endif /* _FFR_LOCAL_DAEMON */ #if XDEBUG checkfd012("after openlog"); #endif /* XDEBUG */ @@ -401,6 +404,13 @@ main(argc, argv, envp) OpMode = j; break; +#if _FFR_LOCAL_DAEMON + case MD_LOCAL: + OpMode = MD_DAEMON; + LocalDaemon = true; + break; +#endif /* _FFR_LOCAL_DAEMON */ + case MD_FREEZE: (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "Frozen configurations unsupported\n"); diff --git a/contrib/sendmail/src/mci.c b/contrib/sendmail/src/mci.c index ef977440..2770117 100644 --- a/contrib/sendmail/src/mci.c +++ b/contrib/sendmail/src/mci.c @@ -9,12 +9,11 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ */ #include -SM_RCSID("@(#)$Id: mci.c,v 8.218 2006/08/15 23:24:57 ca Exp $") +SM_RCSID("@(#)$Id: mci.c,v 8.221 2007/11/13 23:44:25 gshapiro Exp $") #if NETINET || NETINET6 # include @@ -1144,16 +1143,27 @@ mci_traverse_persistent(action, pathname) pathname, sm_errstring(errno)); return -1; } - len = sizeof(newpath) - MAXNAMLEN - 3; + + /* + ** Reserve space for trailing '/', at least one + ** character, and '\0' + */ + + len = sizeof(newpath) - 3; if (sm_strlcpy(newpath, pathname, len) >= len) { + int save_errno = errno; + if (tTd(56, 2)) sm_dprintf("mci_traverse: path \"%s\" too long", pathname); + (void) closedir(d); + errno = save_errno; return -1; } newptr = newpath + strlen(newpath); *newptr++ = '/'; + len = sizeof(newpath) - (newptr - newpath); /* ** repeat until no file has been removed @@ -1170,9 +1180,17 @@ mci_traverse_persistent(action, pathname) if (e->d_name[0] == '.') continue; - (void) sm_strlcpy(newptr, e->d_name, - sizeof(newpath) - - (newptr - newpath)); + if (sm_strlcpy(newptr, e->d_name, len) >= len) + { + /* Skip truncated copies */ + if (tTd(56, 4)) + { + *newptr = '\0'; + sm_dprintf("mci_traverse: path \"%s%s\" too long", + newpath, e->d_name); + } + continue; + } if (StopRequest) stop_sendmail(); diff --git a/contrib/sendmail/src/parseaddr.c b/contrib/sendmail/src/parseaddr.c index eca60f9..19bcf73 100644 --- a/contrib/sendmail/src/parseaddr.c +++ b/contrib/sendmail/src/parseaddr.c @@ -13,7 +13,7 @@ #include -SM_RCSID("@(#)$Id: parseaddr.c,v 8.401 2007/09/27 23:33:59 ca Exp $") +SM_RCSID("@(#)$Id: parseaddr.c,v 8.403 2008/02/08 02:27:35 ca Exp $") #include #include "map.h" @@ -1460,6 +1460,7 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) size_t trsize; char *replac; int endtoken; + bool external; STAB *map; char *mapname; char **key_rvp; @@ -1575,6 +1576,7 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) true); argvect[0] = cbuf; replac = map_lookup(map, cbuf, argvect, &rstat, e); + external = replac != NULL; /* if no replacement, use default */ if (replac == NULL && default_rvp != NULL) @@ -1599,7 +1601,8 @@ rewrite(pvp, ruleset, reclevel, e, maxatom) { /* scan the new replacement */ xpvp = prescan(replac, '\0', pvpbuf, - sizeof(pvpbuf), NULL, NULL, + sizeof(pvpbuf), NULL, + external ? NULL : IntTokenTab, false); if (xpvp == NULL) { @@ -2263,7 +2266,7 @@ cataddr(pvp, evp, buf, sz, spacesub, external) { char *q; - natomtok = (ExtTokenTab[**pvp & 0xff] == ATM); + natomtok = (IntTokenTab[**pvp & 0xff] == ATM); if (oatomtok && natomtok) { *p++ = spacesub; diff --git a/contrib/sendmail/src/queue.c b/contrib/sendmail/src/queue.c index e80a035..d4c6369 100644 --- a/contrib/sendmail/src/queue.c +++ b/contrib/sendmail/src/queue.c @@ -14,7 +14,7 @@ #include #include -SM_RCSID("@(#)$Id: queue.c,v 8.975 2007/06/18 20:08:40 ca Exp $") +SM_RCSID("@(#)$Id: queue.c,v 8.977 2008/02/15 23:19:58 ca Exp $") #include @@ -4514,7 +4514,7 @@ readqf(e, openonly) (void) sm_io_close(qfp, SM_TIME_DEFAULT); return false; } - + #if _FFR_QF_PARANOIA /* Check to make sure key fields were read */ if (e->e_from.q_mailer == NULL) @@ -6596,8 +6596,8 @@ init_sem(owner) if (SemId < 0) { sm_syslog(LOG_ERR, NOQID, - "func=init_sem, sem_key=%ld, sm_sem_start=%d", - (long) SemKey, SemId); + "func=init_sem, sem_key=%ld, sm_sem_start=%d, error=%s", + (long) SemKey, SemId, sm_errstring(-SemId)); return; } #endif /* SM_CONF_SEM */ diff --git a/contrib/sendmail/src/ratectrl.c b/contrib/sendmail/src/ratectrl.c index 22f9803..8b95b37 100644 --- a/contrib/sendmail/src/ratectrl.c +++ b/contrib/sendmail/src/ratectrl.c @@ -45,7 +45,7 @@ */ #include -SM_RCSID("@(#)$Id: ratectrl.c,v 8.11 2006/08/15 23:24:57 ca Exp $") +SM_RCSID("@(#)$Id: ratectrl.c,v 8.12 2008/02/11 22:56:05 ca Exp $") /* ** stuff included - given some warnings (inet_ntoa) @@ -114,7 +114,7 @@ connection_rate_check(hostaddr, e) /* update server connection rate */ totalrate = total_rate(now, e == NULL); #if RATECTL_DEBUG - sm_syslog(LOG_INFO, NOQID, "global connection rate: %d", globalRate); + sm_syslog(LOG_INFO, NOQID, "global connection rate: %d", totalrate); #endif /* RATECTL_DEBUG */ /* update client connection rate */ diff --git a/contrib/sendmail/src/readcf.c b/contrib/sendmail/src/readcf.c index 0d0849b..445df9e 100644 --- a/contrib/sendmail/src/readcf.c +++ b/contrib/sendmail/src/readcf.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -14,7 +14,7 @@ #include #include -SM_RCSID("@(#)$Id: readcf.c,v 8.664 2007/07/10 17:01:22 ca Exp $") +SM_RCSID("@(#)$Id: readcf.c,v 8.666 2008/02/14 17:25:14 ca Exp $") #if NETINET || NETINET6 # include @@ -2249,6 +2249,12 @@ static struct optioninfo # define O_ADDR_TYPE_MODES 0xe0 { "AddrTypeModes", O_ADDR_TYPE_MODES, OI_NONE }, #endif /* _FFR_ADDR_TYPE_MODES */ +#if _FFR_BADRCPT_SHUTDOWN +# define O_RCPTSHUTD 0xe1 + { "BadRcptShutdown", O_RCPTSHUTD, OI_SAFE }, +# define O_RCPTSHUTDG 0xe2 + { "BadRcptShutdownGood", O_RCPTSHUTDG, OI_SAFE }, +#endif /* _FFR_BADRCPT_SHUTDOWN */ { NULL, '\0', OI_NONE } }; @@ -3817,6 +3823,16 @@ setoption(opt, val, safe, sticky, e) break; #endif /* _FFR_ADDR_TYPE_MODES */ +#if _FFR_BADRCPT_SHUTDOWN + case O_RCPTSHUTD: + BadRcptShutdown = atoi(val); + break; + + case O_RCPTSHUTDG: + BadRcptShutdownGood = atoi(val); + break; +#endif /* _FFR_BADRCPT_SHUTDOWN */ + default: if (tTd(37, 1)) { diff --git a/contrib/sendmail/src/savemail.c b/contrib/sendmail/src/savemail.c index 7c7f288..cf72e8d 100644 --- a/contrib/sendmail/src/savemail.c +++ b/contrib/sendmail/src/savemail.c @@ -9,8 +9,6 @@ * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * - * $FreeBSD$ - * */ #include diff --git a/contrib/sendmail/src/sendmail.h b/contrib/sendmail/src/sendmail.h index 82ab6a9..88607e6 100644 --- a/contrib/sendmail/src/sendmail.h +++ b/contrib/sendmail/src/sendmail.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2007 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -52,7 +52,7 @@ #ifdef _DEFINE # ifndef lint -SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1052 2007/10/05 23:06:30 ca Exp $"; +SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1059 2008/02/15 23:19:58 ca Exp $"; # endif /* ! lint */ #endif /* _DEFINE */ @@ -1551,6 +1551,7 @@ extern void stabapply __P((void (*)(STAB *, int), int)); #define MD_ARPAFTP 'a' /* obsolete ARPANET mode (Grey Book) */ #define MD_DAEMON 'd' /* run as a daemon */ #define MD_FGDAEMON 'D' /* run daemon in foreground */ +#define MD_LOCAL 'l' /* like daemon, but localhost only */ #define MD_VERIFY 'v' /* verify: don't collect or deliver */ #define MD_TEST 't' /* test mode: resolve addrs only */ #define MD_INITALIAS 'i' /* initialize alias database */ @@ -1561,6 +1562,12 @@ extern void stabapply __P((void (*)(STAB *, int), int)); #define MD_PURGESTAT 'H' /* purge persistent host stat info */ #define MD_QUEUERUN 'q' /* queue run */ +#if _FFR_LOCAL_DAEMON +EXTERN bool LocalDaemon; +#else /* _FFR_LOCAL_DAEMON */ +# define LocalDaemon false +#endif /* _FFR_LOCAL_DAEMON */ + /* Note: see also include/sendmail/pathnames.h: GET_CLIENT_CF */ /* values for e_sendmode -- send modes */ @@ -2229,6 +2236,10 @@ EXTERN char InetMode; /* default network for daemon mode */ EXTERN char OpMode; /* operation mode, see below */ EXTERN char SpaceSub; /* substitution for */ EXTERN int BadRcptThrottle; /* Throttle rejected RCPTs per SMTP message */ +#if _FFR_BADRCPT_SHUTDOWN +EXTERN int BadRcptShutdown; /* Shutdown connection for rejected RCPTs */ +EXTERN int BadRcptShutdownGood; /* above even when there are good RCPTs */ +#endif /* _FFR_BADRCPT_SHUTDOWN */ EXTERN int CheckpointInterval; /* queue file checkpoint interval */ EXTERN int ConfigLevel; /* config file level */ EXTERN int ConnRateThrottle; /* throttle for SMTP connection rate */ @@ -2590,6 +2601,11 @@ extern void setoption __P((int, char *, bool, bool, ENVELOPE *)); extern sigfunc_t setsignal __P((int, sigfunc_t)); extern void sm_setuserenv __P((const char *, const char *)); extern void settime __P((ENVELOPE *)); +#if STARTTLS +extern void set_tls_rd_tmo __P((int)); +#else /* STARTTLS */ +#define set_tls_rd_tmo(rd_tmo) +#endif /* STARTTLS */ extern char *sfgets __P((char *, int, SM_FILE_T *, time_t, char *)); extern char *shortenstring __P((const char *, size_t)); extern char *shorten_hostname __P((char [])); diff --git a/contrib/sendmail/src/sfsasl.c b/contrib/sendmail/src/sfsasl.c index 216d87e..67e919f 100644 --- a/contrib/sendmail/src/sfsasl.c +++ b/contrib/sendmail/src/sfsasl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1999-2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set @@ -9,7 +9,7 @@ */ #include -SM_RCSID("@(#)$Id: sfsasl.c,v 8.115 2006/04/18 21:34:07 ca Exp $") +SM_RCSID("@(#)$Id: sfsasl.c,v 8.117 2008/01/31 18:48:29 ca Exp $") #include #include #include @@ -675,6 +675,26 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where) #endif /* ETIMEDOUT */ /* +** SET_TLS_RD_TMO -- read secured information for the caller +** +** Parameters: +** rd_tmo -- read timeout +** +** Results: +** none +** This is a hack: there is no way to pass it in +*/ + +static int tls_rd_tmo = -1; + +void +set_tls_rd_tmo(rd_tmo) + int rd_tmo; +{ + tls_rd_tmo = rd_tmo; +} + +/* ** TLS_READ -- read secured information for the caller ** ** Parameters: @@ -725,7 +745,9 @@ tls_read(fp, buf, size) rfd = SSL_get_rfd(so->con); wfd = SSL_get_wfd(so->con); try = tls_retry(so->con, rfd, wfd, tlsstart, - TimeOuts.to_datablock, ssl_err, "read"); + (tls_rd_tmo < 0) ? TimeOuts.to_datablock + : tls_rd_tmo, + ssl_err, "read"); if (try > 0) goto retry; errno = SM_ERR_TIMEOUT; diff --git a/contrib/sendmail/src/sm_resolve.c b/contrib/sendmail/src/sm_resolve.c index 035a9e5..6d9c28d 100644 --- a/contrib/sendmail/src/sm_resolve.c +++ b/contrib/sendmail/src/sm_resolve.c @@ -46,7 +46,7 @@ # if NAMED_BIND # include "sm_resolve.h" -SM_RCSID("$Id: sm_resolve.c,v 8.35 2007/06/25 16:20:14 ca Exp $") +SM_RCSID("$Id: sm_resolve.c,v 8.36 2008/02/11 23:04:16 ca Exp $") static struct stot { @@ -168,7 +168,7 @@ parse_dns_reply(data, len) int len; { unsigned char *p; - ushort ans_cnt, ui; + unsigned short ans_cnt, ui; int status; size_t l; char host[MAXHOSTNAMELEN]; @@ -198,7 +198,7 @@ parse_dns_reply(data, len) return NULL; } - ans_cnt = ntohs((ushort) r->dns_r_h.ancount); + ans_cnt = ntohs((unsigned short) r->dns_r_h.ancount); p += status; GETSHORT(r->dns_r_q.dns_q_type, p); diff --git a/contrib/sendmail/src/srvrsmtp.c b/contrib/sendmail/src/srvrsmtp.c index 514a5e6..fffcd0d 100644 --- a/contrib/sendmail/src/srvrsmtp.c +++ b/contrib/sendmail/src/srvrsmtp.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2007 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -17,7 +17,7 @@ # include #endif /* MILTER */ -SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.967 2007/10/01 16:22:14 ca Exp $") +SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.975 2008/03/31 16:32:13 ca Exp $") #include #include @@ -637,6 +637,9 @@ smtp(nullserver, d_flags, e) # define p_addr_st NULL #endif /* MILTER */ size_t inplen; +#if _FFR_BADRCPT_SHUTDOWN + int n_badrcpts_adj; +#endif /* _FFR_BADRCPT_SHUTDOWN */ SevenBitInput_Saved = SevenBitInput; smtp.sm_nrcpts = 0; @@ -903,6 +906,8 @@ smtp(nullserver, d_flags, e) #endif /* SASL */ #if STARTTLS + + set_tls_rd_tmo(TimeOuts.to_nextcommand); #endif /* STARTTLS */ #if MILTER @@ -942,6 +947,7 @@ smtp(nullserver, d_flags, e) /* arrange to ignore send list */ e->e_sendqueue = NULL; + lognullconnection = false; goto doquit; } } @@ -1054,10 +1060,10 @@ smtp(nullserver, d_flags, e) if (select(fd + 1, FDSET_CAST &readfds, NULL, NULL, &timeout) > 0 && FD_ISSET(fd, &readfds) && - (eoftest = sm_io_getc(InChannel, SM_TIME_DEFAULT)) + (eoftest = sm_io_getc(InChannel, SM_TIME_DEFAULT)) != SM_IO_EOF) { - sm_io_ungetc(InChannel, SM_TIME_DEFAULT, + sm_io_ungetc(InChannel, SM_TIME_DEFAULT, eoftest); gettimeofday(&ep, NULL); timersub(&ep, &bp, &tp); @@ -2523,6 +2529,36 @@ smtp(nullserver, d_flags, e) milter_rcpt_added = false; smtp.sm_e_nrcpts_orig = e->e_nrcpts; #endif +#if _FFR_BADRCPT_SHUTDOWN + /* + ** hack to deal with hack, see below: + ** n_badrcpts is increased is limit is reached. + */ + + n_badrcpts_adj = (BadRcptThrottle > 0 && + n_badrcpts > BadRcptThrottle && + LogLevel > 5) + ? n_badrcpts - 1 : n_badrcpts; + if (BadRcptShutdown > 0 && + n_badrcpts_adj >= BadRcptShutdown && + (BadRcptShutdownGood == 0 || + smtp.sm_nrcpts == 0 || + (n_badrcpts_adj * 100 / + (smtp.sm_nrcpts + n_badrcpts) >= + BadRcptShutdownGood))) + { + if (LogLevel > 5) + sm_syslog(LOG_INFO, e->e_id, + "%s: Possible SMTP RCPT flood, shutting down connection.", + CurSmtpClient); + message("421 4.7.0 %s Too many bad recipients; closing connection", + MyHostName); + + /* arrange to ignore any current send list */ + e->e_sendqueue = NULL; + goto doquit; + } +#endif /* _FFR_BADRCPT_SHUTDOWN */ if (BadRcptThrottle > 0 && n_badrcpts >= BadRcptThrottle) { @@ -3775,17 +3811,10 @@ smtp_data(smtp, e) dropenvelope(ee, true, false); } } - sm_rpool_free(e->e_rpool); - - /* - ** At this point, e == &MainEnvelope, but if we did splitting, - ** then CurEnv may point to an envelope structure that was just - ** freed with the rpool. So reset CurEnv *before* calling - ** newenvelope. - */ CurEnv = e; features = e->e_features; + sm_rpool_free(e->e_rpool); newenvelope(e, e, sm_rpool_new_x(NULL)); e->e_flags = BlankEnvelope.e_flags; e->e_features = features; diff --git a/contrib/sendmail/src/usersmtp.c b/contrib/sendmail/src/usersmtp.c index 724f10c..b29495c 100644 --- a/contrib/sendmail/src/usersmtp.c +++ b/contrib/sendmail/src/usersmtp.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2006 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -13,7 +13,7 @@ #include -SM_RCSID("@(#)$Id: usersmtp.c,v 8.470 2007/10/17 21:35:30 ca Exp $") +SM_RCSID("@(#)$Id: usersmtp.c,v 8.472 2008/01/31 18:48:29 ca Exp $") #include @@ -3077,6 +3077,7 @@ reply(m, mci, e, timeout, pfunc, enhstat, rtype) */ bufp = SmtpReplyBuffer; + set_tls_rd_tmo(timeout); for (;;) { register char *p; diff --git a/contrib/sendmail/src/util.c b/contrib/sendmail/src/util.c index 95d2f9a..dab5961 100644 --- a/contrib/sendmail/src/util.c +++ b/contrib/sendmail/src/util.c @@ -13,7 +13,7 @@ #include -SM_RCSID("@(#)$Id: util.c,v 8.413 2007/09/26 23:29:11 ca Exp $") +SM_RCSID("@(#)$Id: util.c,v 8.414 2007/11/02 17:30:38 ca Exp $") #include #include @@ -2823,9 +2823,10 @@ count_open_connections(hostaddr) return 0; /* - ** Initialize to 1 instead of 0 because this code gets called - ** before proc_list_add() gets called, so we (the daemon child - ** for this connection) don't count ourselves. + ** This code gets called before proc_list_add() gets called, + ** so we (the daemon child for this connection) have not yet + ** counted ourselves. Hence initialize the counter to 1 + ** instead of 0 to compensate. */ n = 1; diff --git a/contrib/sendmail/src/version.c b/contrib/sendmail/src/version.c index ee09fc9..3e5ee8e 100644 --- a/contrib/sendmail/src/version.c +++ b/contrib/sendmail/src/version.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998-2007 Sendmail, Inc. and its suppliers. + * Copyright (c) 1998-2008 Sendmail, Inc. and its suppliers. * All rights reserved. * Copyright (c) 1983 Eric P. Allman. All rights reserved. * Copyright (c) 1988, 1993 @@ -13,6 +13,6 @@ #include -SM_RCSID("@(#)$Id: version.c,v 8.199 2007/10/31 16:04:12 ca Exp $") +SM_RCSID("@(#)$Id: version.c,v 8.208 2008/04/17 17:04:30 ca Exp $") -char Version[] = "8.14.2"; +char Version[] = "8.14.3"; -- cgit v1.1