diff --git a/contrib/sendmail/RELEASE_NOTES b/contrib/sendmail/RELEASE_NOTES index b518685d6b22..83283c3380cf 100644 --- a/contrib/sendmail/RELEASE_NOTES +++ b/contrib/sendmail/RELEASE_NOTES @@ -1,11 +1,34 @@ SENDMAIL RELEASE NOTES - $Id: RELEASE_NOTES,v 8.1777.2.6 2006/06/05 22:32:41 ca Exp $ + $Id: RELEASE_NOTES,v 8.1777.2.15 2006/08/07 17:22:09 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.13.8/8.13.8 2006/08/09 + Fix a regression in 8.13.7: if shared memory is activated, then + the server can erroneously report that there is + insufficient disk space. Additionally make sure that + an internal variable is set properly to avoid those + misleading errors. Based on patch from Steve Hubert + of University of Washington. + Fix a regression in 8.13.7: the PidFile could be removed after + the process that forks the daemon exited, i.e., if + sendmail -bd is invoked. Problem reported by Kan Sasaki + of Fusion Communications Corp. and Werner Wiethege. + Avoid opening qf files if QueueSortOrder is "none". Patch from + David F. Skoll. + Avoid a crash when finishing due to referencing a freed variable. + Problem reported and diagnosed by Moritz Jodeit. + CONTRIB: cidrexpand now deals with /0 by issuing the entire IPv4 + range (0..255). + LIBMILTER: The "hostname" argument of the xxfi_connect() callback + previously was the equivalent of {client_ptr}. However, + this did not match the documentation of the function, hence + it has been changed to {client_name}. See doc/op/op.* + about these macros. + 8.13.7/8.13.7 2006/06/14 A malformed MIME structure with many parts can cause sendmail to crash while trying to send a mail due to a stack overflow, @@ -174,7 +197,7 @@ summary of the changes in that release. Make sure return parameters are initialized in getmxrr(). Problem found by Gael Roualland using valgrind. If shared memory is used and the RunAsUser option is set, then the - owner and group of the shared memory segment is set to + owner and group of the shared memory segment is set to the ids specified RunAsUser and the access mode is set to 0660 to allow for updates by sendmail processes. The number of queue entries that is (optionally) kept in shared diff --git a/contrib/sendmail/cf/cf/submit.cf b/contrib/sendmail/cf/cf/submit.cf index 8d9e5400bbfb..f5d078a9c4c5 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 Mon Jun 5 15:34:16 PDT 2006 -##### in /extra/home/ca/sm-8.13.7/OpenSource/sendmail-8.13.7/cf/cf +##### built by ca@nother.smi.sendmail.com on Mon Aug 7 10:37:32 PDT 2006 +##### in /extra/home/ca/sm-8.13.8/OpenSource/sendmail-8.13.8/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -114,7 +114,7 @@ D{MTAHost}[127.0.0.1] # Configuration version number -DZ8.13.7/Submit +DZ8.13.8/Submit ############### diff --git a/contrib/sendmail/cf/m4/version.m4 b/contrib/sendmail/cf/m4/version.m4 index 1a75214fd6bc..df22ee049e90 100644 --- a/contrib/sendmail/cf/m4/version.m4 +++ b/contrib/sendmail/cf/m4/version.m4 @@ -11,8 +11,8 @@ divert(-1) # the sendmail distribution. # # -VERSIONID(`$Id: version.m4,v 8.150.2.4 2006/06/05 22:32:40 ca Exp $') +VERSIONID(`$Id: version.m4,v 8.150.2.8 2006/07/26 17:24:02 ca Exp $') # divert(0) # Configuration version number -DZ8.13.7`'ifdef(`confCF_VERSION', `/confCF_VERSION') +DZ8.13.8`'ifdef(`confCF_VERSION', `/confCF_VERSION') diff --git a/contrib/sendmail/contrib/cidrexpand b/contrib/sendmail/contrib/cidrexpand index b7ace25adfbe..882534a2e35d 100755 --- a/contrib/sendmail/contrib/cidrexpand +++ b/contrib/sendmail/contrib/cidrexpand @@ -1,13 +1,13 @@ #!/usr/bin/perl -w -# $Id: cidrexpand,v 8.4 2002/11/22 21:13:14 ca Exp $ +# $Id: cidrexpand,v 8.4.2.1 2006/08/07 17:22:10 ca Exp $ # # v 0.4 # # 17 July 2000 Derek J. Balling (dredd@megacity.org) -# +# # Acts as a preparser on /etc/mail/access_db to allow you to use address/bit -# notation. +# notation. # # If you have two overlapping CIDR blocks with conflicting actions # e.g. 10.2.3.128/25 REJECT and 10.2.3.143 ACCEPT @@ -25,10 +25,15 @@ # Added code to deal with the prefix tags that may now be included in # the access_db # -# Added clarification in the notes for what to do if you have +# Added clarification in the notes for what to do if you have # exceptions to a larger CIDR block. # -# usage: +# 3 August 2006 +# +# Corrected a bug to have it handle the special case of "0.0.0.0/0" +# since Net::CIDR doesn't handle it properly. +# +# usage: # cidrexpand < /etc/mail/access | makemap -r hash /etc/mail/access # # @@ -72,7 +77,7 @@ while (<>) } } } - + sub expand_network { my $left_input = shift; @@ -80,6 +85,8 @@ sub expand_network my ($network,$mask) = split /\//, $left_input; if (defined $mask) { + return (0..255) if $mask == 0; + my @parts = split /\./, $network; while ($#parts < 3) { diff --git a/contrib/sendmail/src/main.c b/contrib/sendmail/src/main.c index d81d3867be81..0d6928d19996 100644 --- a/contrib/sendmail/src/main.c +++ b/contrib/sendmail/src/main.c @@ -25,7 +25,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.944 2006/04/21 23:56:42 ca Exp $") +SM_RCSID("@(#)$Id: main.c,v 8.944.2.2 2006/08/03 22:05:03 ca Exp $") #if NETINET || NETINET6 @@ -2289,6 +2289,8 @@ main(argc, argv, envp) { char dtype[200]; + /* avoid cleanup in finis(), DaemonPid will be set below */ + DaemonPid = 0; if (!run_in_foreground && !tTd(99, 100)) { /* put us in background */ @@ -2321,7 +2323,10 @@ main(argc, argv, envp) dtype[0] = '\0'; if (OpMode == MD_DAEMON) + { (void) sm_strlcat(dtype, "+SMTP", sizeof dtype); + DaemonPid = CurrentPid; + } if (QueueIntvl > 0) { (void) sm_strlcat2(dtype, @@ -2903,6 +2908,9 @@ finis(drop, cleanup, exitstat) dropenvelope(CurEnv, true, false); sm_rpool_free(CurEnv->e_rpool); CurEnv->e_rpool = NULL; + + /* this may have pointed to the rpool */ + CurEnv->e_to = NULL; } else poststats(StatFile); diff --git a/contrib/sendmail/src/queue.c b/contrib/sendmail/src/queue.c index 151cd48cc6a5..6fd23158ad4e 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.954 2006/04/22 01:07:00 ca Exp $") +SM_RCSID("@(#)$Id: queue.c,v 8.954.2.5 2006/07/31 21:44:18 ca Exp $") #include @@ -2646,6 +2646,7 @@ gatherq(qgrp, qdir, doall, full, more) /* avoid work if possible */ if ((QueueSortOrder == QSO_BYFILENAME || QueueSortOrder == QSO_BYMODTIME || + QueueSortOrder == QSO_NONE || QueueSortOrder == QSO_RANDOM) && QueueLimitQuarantine == NULL && QueueLimitSender == NULL && @@ -6312,7 +6313,19 @@ filesys_find(name, path, add) for (i = 0; i < NumFileSys; ++i) { if (FILE_SYS_DEV(i) == st.st_dev) + { + /* + ** Make sure the file system (FS) name is set: + ** even though the source code indicates that + ** FILE_SYS_DEV() is only set below, it could be + ** set via shared memory, hence we need to perform + ** this check/assignment here. + */ + + if (NULL == FILE_SYS_NAME(i)) + FILE_SYS_NAME(i) = name; return i; + } } if (i >= MAXFILESYS) { @@ -6406,8 +6419,7 @@ filesys_update() static time_t nextupdate = 0; #if SM_CONF_SHM - /* only the daemon updates this structure */ - if (ShmId == SM_SHM_NO_ID || DaemonPid != CurrentPid) + if (ShmId != SM_SHM_NO_ID && DaemonPid != CurrentPid) return; #endif /* SM_CONF_SHM */ now = curtime(); diff --git a/contrib/sendmail/src/srvrsmtp.c b/contrib/sendmail/src/srvrsmtp.c index c75214f05707..d95b5a5b7225 100644 --- a/contrib/sendmail/src/srvrsmtp.c +++ b/contrib/sendmail/src/srvrsmtp.c @@ -17,7 +17,7 @@ # include #endif /* MILTER */ -SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.924.2.2 2006/05/31 20:56:37 ca Exp $") +SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.924.2.5 2006/07/07 16:29:39 ca Exp $") #include #include @@ -851,8 +851,9 @@ smtp(nullserver, d_flags, e) char state; char *response; - response = milter_connect(peerhostname, RealHostAddr, - e, &state); + q = macvalue(macid("{client_name}"), e); + SM_ASSERT(q != NULL); + response = milter_connect(q, RealHostAddr, e, &state); switch (state) { case SMFIR_REPLYCODE: /* REPLYCODE shouldn't happen */ diff --git a/contrib/sendmail/src/version.c b/contrib/sendmail/src/version.c index 812d1eb5f323..f5777280eb21 100644 --- a/contrib/sendmail/src/version.c +++ b/contrib/sendmail/src/version.c @@ -13,6 +13,6 @@ #include -SM_RCSID("@(#)$Id: version.c,v 8.163.2.4 2006/06/05 22:32:40 ca Exp $") +SM_RCSID("@(#)$Id: version.c,v 8.163.2.8 2006/07/26 17:24:02 ca Exp $") -char Version[] = "8.13.7"; +char Version[] = "8.13.8";