Import sendmail 8.11.6
This commit is contained in:
parent
13058a9161
commit
c86d59657f
@ -1,11 +1,26 @@
|
|||||||
SENDMAIL RELEASE NOTES
|
SENDMAIL RELEASE NOTES
|
||||||
$Id: RELEASE_NOTES,v 8.561.2.5.2.254 2001/07/31 22:42:46 gshapiro Exp $
|
$Id: RELEASE_NOTES,v 8.561.2.5.2.261 2001/08/20 14:45:32 gshapiro Exp $
|
||||||
|
|
||||||
|
|
||||||
This listing shows the version of the sendmail binary, the version
|
This listing shows the version of the sendmail binary, the version
|
||||||
of the sendmail configuration files, the date of release, and a
|
of the sendmail configuration files, the date of release, and a
|
||||||
summary of the changes in that release.
|
summary of the changes in that release.
|
||||||
|
|
||||||
|
8.11.6/8.11.6 2001/08/20
|
||||||
|
SECURITY: Fix a possible memory access violation when specifying
|
||||||
|
out-of-bounds debug parameters. Problem detected by
|
||||||
|
Cade Cairns of SecurityFocus.
|
||||||
|
Avoid leaking recipient information in unrelated DSNs. This could
|
||||||
|
happen if a connection is aborted, several mails had been
|
||||||
|
scheduled for delivery via that connection, and the timeout
|
||||||
|
is reached such that several DSNs are sent next. Problem
|
||||||
|
noted by Dileepan Moorkanat of Hewlett-Packard.
|
||||||
|
Fix a possible segmentation violation when specifying too many
|
||||||
|
wildcard operators in a rule. Problem detected by
|
||||||
|
Werner Wiethege.
|
||||||
|
Avoid a segmentation fault on non-matching Hesiod lookups. Problem
|
||||||
|
noted by Russell McOrmond of flora.ca
|
||||||
|
|
||||||
8.11.5/8.11.5 2001/07/31
|
8.11.5/8.11.5 2001/07/31
|
||||||
Fix a possible race condition when sending a HUP signal to restart
|
Fix a possible race condition when sending a HUP signal to restart
|
||||||
the daemon. This could terminate the current process without
|
the daemon. This could terminate the current process without
|
||||||
|
@ -433,7 +433,7 @@ DECNET_RELAY The host that will accept DECNET-addressed email.
|
|||||||
FAX_RELAY The host that will accept mail to the .FAX pseudo-domain.
|
FAX_RELAY The host that will accept mail to the .FAX pseudo-domain.
|
||||||
The "fax" mailer overrides this value.
|
The "fax" mailer overrides this value.
|
||||||
LOCAL_RELAY The site that will handle unqualified names -- that
|
LOCAL_RELAY The site that will handle unqualified names -- that
|
||||||
is, names with out an @domain extension.
|
is, names without an @domain extension.
|
||||||
Normally MAIL_HUB is preferred for this function.
|
Normally MAIL_HUB is preferred for this function.
|
||||||
LOCAL_RELAY is mostly useful in conjunction with
|
LOCAL_RELAY is mostly useful in conjunction with
|
||||||
FEATURE(stickyhost) -- see the discussion of
|
FEATURE(stickyhost) -- see the discussion of
|
||||||
@ -2148,7 +2148,7 @@ If a certain level of encryption is required, then it might also be
|
|||||||
possible that this level is provided by the security layer from a SASL
|
possible that this level is provided by the security layer from a SASL
|
||||||
algorithm, e.g., DIGEST-MD5.
|
algorithm, e.g., DIGEST-MD5.
|
||||||
|
|
||||||
Example: e-mail send to secure.example.com should only use an encrypted
|
Example: e-mail sent to secure.example.com should only use an encrypted
|
||||||
connection. e-mail received from hosts within the laptop.example.com domain
|
connection. e-mail received from hosts within the laptop.example.com domain
|
||||||
should only be accepted if they have been authenticated.
|
should only be accepted if they have been authenticated.
|
||||||
TLS_Srv:secure.example.com ENCR:112
|
TLS_Srv:secure.example.com ENCR:112
|
||||||
@ -3313,4 +3313,4 @@ M4 DIVERSIONS
|
|||||||
8 DNS based blacklists
|
8 DNS based blacklists
|
||||||
9 special local rulesets (1 and 2)
|
9 special local rulesets (1 and 2)
|
||||||
|
|
||||||
$Revision: 8.383.2.1.2.47 $, Last updated $Date: 2001/07/13 22:31:49 $
|
$Revision: 8.383.2.1.2.49 $, Last updated $Date: 2001/08/14 15:25:36 $
|
||||||
|
@ -11,8 +11,8 @@ divert(-1)
|
|||||||
# the sendmail distribution.
|
# the sendmail distribution.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
VERSIONID(`$Id: version.m4,v 8.39.4.33 2001/07/31 22:34:17 gshapiro Exp $')
|
VERSIONID(`$Id: version.m4,v 8.39.4.35 2001/08/20 14:45:34 gshapiro Exp $')
|
||||||
#
|
#
|
||||||
divert(0)
|
divert(0)
|
||||||
# Configuration version number
|
# Configuration version number
|
||||||
DZ8.11.5`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
DZ8.11.6`'ifdef(`confCF_VERSION', `/confCF_VERSION')
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
.\" the sendmail distribution.
|
.\" the sendmail distribution.
|
||||||
.\"
|
.\"
|
||||||
.\"
|
.\"
|
||||||
.\" $Id: op.me,v 8.317.4.70 2001/07/24 04:08:25 ca Exp $
|
.\" $Id: op.me,v 8.317.4.71 2001/08/14 15:26:00 ca Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" eqn op.me | pic | troff -me
|
.\" eqn op.me | pic | troff -me
|
||||||
.\"
|
.\"
|
||||||
@ -87,7 +87,7 @@ eric@Sendmail.COM
|
|||||||
.de Ve
|
.de Ve
|
||||||
Version \\$2
|
Version \\$2
|
||||||
..
|
..
|
||||||
.Ve $Revision: 8.317.4.70 $
|
.Ve $Revision: 8.317.4.71 $
|
||||||
.rm Ve
|
.rm Ve
|
||||||
.sp
|
.sp
|
||||||
For Sendmail Version 8.11
|
For Sendmail Version 8.11
|
||||||
@ -6441,7 +6441,7 @@ only root and the owner of the queue directory
|
|||||||
can run the queue.
|
can run the queue.
|
||||||
Authentication Warnings add warnings about various conditions
|
Authentication Warnings add warnings about various conditions
|
||||||
that may indicate attempts to spoof the mail system,
|
that may indicate attempts to spoof the mail system,
|
||||||
such as using an non-standard queue directory.
|
such as using a non-standard queue directory.
|
||||||
.ip ProcessTitlePrefix=\fIstring\fP
|
.ip ProcessTitlePrefix=\fIstring\fP
|
||||||
[no short name]
|
[no short name]
|
||||||
Prefix the process title shown on 'ps' listings with
|
Prefix the process title shown on 'ps' listings with
|
||||||
@ -9475,7 +9475,7 @@ replace it with a blank sheet for double-sided output.
|
|||||||
.\".sz 10
|
.\".sz 10
|
||||||
.\"Eric Allman
|
.\"Eric Allman
|
||||||
.\".sp
|
.\".sp
|
||||||
.\"Version $Revision: 8.317.4.70 $
|
.\"Version $Revision: 8.317.4.71 $
|
||||||
.\".ce 0
|
.\".ce 0
|
||||||
.bp 3
|
.bp 3
|
||||||
.ce
|
.ce
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# the sendmail distribution.
|
# the sendmail distribution.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# $Id: README,v 8.263.2.1.2.37 2001/06/03 03:41:12 ca Exp $
|
# $Id: README,v 8.263.2.1.2.38 2001/08/15 22:07:11 gshapiro Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
This directory contains the source files for sendmail(TM).
|
This directory contains the source files for sendmail(TM).
|
||||||
@ -114,6 +114,7 @@ HESIOD Support for Hesiod (from the DEC/Athena distribution). You
|
|||||||
must already have Hesiod support on your system for this to
|
must already have Hesiod support on your system for this to
|
||||||
work. You may be able to get this to work with the MIT/Athena
|
work. You may be able to get this to work with the MIT/Athena
|
||||||
version of Hesiod, but that's likely to be a lot of work.
|
version of Hesiod, but that's likely to be a lot of work.
|
||||||
|
BIND 8.X also includes Hesiod support.
|
||||||
LDAPMAP Lightweight Directory Access Protocol support. You will
|
LDAPMAP Lightweight Directory Access Protocol support. You will
|
||||||
have to install the UMich or OpenLDAP
|
have to install the UMich or OpenLDAP
|
||||||
(http://www.openldap.org/) ldap and lber libraries to use
|
(http://www.openldap.org/) ldap and lber libraries to use
|
||||||
@ -1729,4 +1730,4 @@ util.c Some general purpose routines used by sendmail.
|
|||||||
version.c The version number and information about this
|
version.c The version number and information about this
|
||||||
version of sendmail.
|
version of sendmail.
|
||||||
|
|
||||||
(Version $Revision: 8.263.2.1.2.37 $, last update $Date: 2001/06/03 03:41:12 $ )
|
(Version $Revision: 8.263.2.1.2.38 $, last update $Date: 2001/08/15 22:07:11 $ )
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: clock.c,v 8.52.18.17 2001/07/31 23:04:59 ca Exp $";
|
static char id[] = "@(#)$Id: clock.c,v 8.52.18.18 2001/08/14 16:07:04 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -426,6 +426,8 @@ pend_signal(sig)
|
|||||||
abort();
|
abort();
|
||||||
|
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
|
/* shut up stupid compiler warning on HP-UX 11 */
|
||||||
|
sigbit = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: err.c,v 8.120.4.3 2001/05/30 00:22:26 gshapiro Exp $";
|
static char id[] = "@(#)$Id: err.c,v 8.120.4.5 2001/08/17 22:09:40 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -776,10 +776,27 @@ fmtmsg(eb, to, num, enhsc, eno, fmt, ap)
|
|||||||
spaceleft -= l;
|
spaceleft -= l;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* output the "to" person */
|
/*
|
||||||
|
** output the "to" address only if it is defined and one of the
|
||||||
|
** following codes is used:
|
||||||
|
** 050 internal notices, e.g., alias expansion
|
||||||
|
** 250 Ok
|
||||||
|
** 252 Cannot VRFY user, but will accept message and attempt delivery
|
||||||
|
** 450 Requested mail action not taken: mailbox unavailable
|
||||||
|
** 550 Requested action not taken: mailbox unavailable
|
||||||
|
** 553 Requested action not taken: mailbox name not allowed
|
||||||
|
**
|
||||||
|
** Notice: this still isn't "the right thing", this code shouldn't
|
||||||
|
** (indirectly) depend on CurEnv->e_to.
|
||||||
|
*/
|
||||||
|
|
||||||
if (to != NULL && to[0] != '\0' &&
|
if (to != NULL && to[0] != '\0' &&
|
||||||
strncmp(num, "551", 3) != 0 &&
|
(strncmp(num, "050", 3) == 0 ||
|
||||||
strncmp(num, "251", 3) != 0)
|
strncmp(num, "250", 3) == 0 ||
|
||||||
|
strncmp(num, "252", 3) == 0 ||
|
||||||
|
strncmp(num, "450", 3) == 0 ||
|
||||||
|
strncmp(num, "550", 3) == 0 ||
|
||||||
|
strncmp(num, "553", 3) == 0))
|
||||||
{
|
{
|
||||||
(void) snprintf(eb, spaceleft, "%s... ",
|
(void) snprintf(eb, spaceleft, "%s... ",
|
||||||
shortenstring(to, MAXSHORTSTR));
|
shortenstring(to, MAXSHORTSTR));
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: map.c,v 8.414.4.54 2001/06/01 08:23:24 gshapiro Exp $";
|
static char id[] = "@(#)$Id: map.c,v 8.414.4.55 2001/08/15 22:08:58 gshapiro Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -5359,7 +5359,8 @@ hes_map_lookup(map, name, av, statp)
|
|||||||
*statp = EX_UNAVAILABLE;
|
*statp = EX_UNAVAILABLE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hesiod_free_list(HesiodContext, hp);
|
if (hp != NULL)
|
||||||
|
hesiod_free_list(HesiodContext, hp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
# else /* HESIOD_INIT */
|
# else /* HESIOD_INIT */
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: milter.c,v 8.50.4.51 2001/07/20 00:53:01 gshapiro Exp $";
|
static char id[] = "@(#)$Id: milter.c,v 8.50.4.53 2001/08/15 02:01:03 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#if _FFR_MILTER
|
#if _FFR_MILTER
|
||||||
@ -1100,7 +1100,7 @@ milter_setup(line)
|
|||||||
m->mf_name = newstr(line);
|
m->mf_name = newstr(line);
|
||||||
m->mf_state = SMFS_READY;
|
m->mf_state = SMFS_READY;
|
||||||
m->mf_sock = -1;
|
m->mf_sock = -1;
|
||||||
m->mf_timeout[SMFTO_CONNECT] = (time_t) 0;
|
m->mf_timeout[SMFTO_CONNECT] = (time_t) 0;
|
||||||
m->mf_timeout[SMFTO_WRITE] = (time_t) 10;
|
m->mf_timeout[SMFTO_WRITE] = (time_t) 10;
|
||||||
m->mf_timeout[SMFTO_READ] = (time_t) 10;
|
m->mf_timeout[SMFTO_READ] = (time_t) 10;
|
||||||
m->mf_timeout[SMFTO_EOM] = (time_t) 300;
|
m->mf_timeout[SMFTO_EOM] = (time_t) 300;
|
||||||
@ -1132,10 +1132,6 @@ milter_setup(line)
|
|||||||
/* install the field into the filter struct */
|
/* install the field into the filter struct */
|
||||||
switch (fcode)
|
switch (fcode)
|
||||||
{
|
{
|
||||||
case 'C':
|
|
||||||
m->mf_timeout[SMFTO_CONNECT] = convtime(p, 's');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'S': /* socket */
|
case 'S': /* socket */
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
m->mf_conn = NULL;
|
m->mf_conn = NULL;
|
||||||
@ -1281,6 +1277,14 @@ milter_parse_timeouts(spec, m)
|
|||||||
/* install the field into the filter struct */
|
/* install the field into the filter struct */
|
||||||
switch (fcode)
|
switch (fcode)
|
||||||
{
|
{
|
||||||
|
case 'C':
|
||||||
|
m->mf_timeout[SMFTO_CONNECT] = convtime(p, 's');
|
||||||
|
if (tTd(64, 5))
|
||||||
|
printf("X%s: %c=%ld\n",
|
||||||
|
m->mf_name, fcode,
|
||||||
|
(u_long) m->mf_timeout[SMFTO_CONNECT]);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'S':
|
case 'S':
|
||||||
m->mf_timeout[SMFTO_WRITE] = convtime(p, 's');
|
m->mf_timeout[SMFTO_WRITE] = convtime(p, 's');
|
||||||
if (tTd(64, 5))
|
if (tTd(64, 5))
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: parseaddr.c,v 8.234.4.12 2001/05/03 17:24:11 gshapiro Exp $";
|
static char id[] = "@(#)$Id: parseaddr.c,v 8.234.4.13 2001/08/14 23:08:13 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -767,9 +767,6 @@ struct match
|
|||||||
char **match_pattern; /* pointer to pattern */
|
char **match_pattern; /* pointer to pattern */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXMATCH 9 /* max params per rewrite */
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
rewrite(pvp, ruleset, reclevel, e)
|
rewrite(pvp, ruleset, reclevel, e)
|
||||||
char **pvp;
|
char **pvp;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: readcf.c,v 8.382.4.42 2001/07/31 22:30:24 gshapiro Exp $";
|
static char id[] = "@(#)$Id: readcf.c,v 8.382.4.43 2001/08/14 23:08:13 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -267,6 +267,11 @@ readcf(cfname, safe, e)
|
|||||||
syserr("R line: null LHS");
|
syserr("R line: null LHS");
|
||||||
rwp->r_lhs = null_list;
|
rwp->r_lhs = null_list;
|
||||||
}
|
}
|
||||||
|
if (nfuzzy > MAXMATCH)
|
||||||
|
{
|
||||||
|
syserr("R line: too many wildcards");
|
||||||
|
rwp->r_lhs = null_list;
|
||||||
|
}
|
||||||
|
|
||||||
/* expand and save the RHS */
|
/* expand and save the RHS */
|
||||||
while (*++p == '\t')
|
while (*++p == '\t')
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#ifdef _DEFINE
|
#ifdef _DEFINE
|
||||||
# define EXTERN
|
# define EXTERN
|
||||||
# ifndef lint
|
# ifndef lint
|
||||||
static char SmailId[] = "@(#)$Id: sendmail.h,v 8.517.4.69 2001/07/20 18:46:01 gshapiro Exp $";
|
static char SmailId[] = "@(#)$Id: sendmail.h,v 8.517.4.70 2001/08/14 23:08:12 ca Exp $";
|
||||||
# endif /* ! lint */
|
# endif /* ! lint */
|
||||||
#else /* _DEFINE */
|
#else /* _DEFINE */
|
||||||
# define EXTERN extern
|
# define EXTERN extern
|
||||||
@ -765,6 +765,8 @@ struct rewrite
|
|||||||
/* to make the code clearer */
|
/* to make the code clearer */
|
||||||
#define MATCHZERO CANONHOST
|
#define MATCHZERO CANONHOST
|
||||||
|
|
||||||
|
#define MAXMATCH 9 /* max params per rewrite */
|
||||||
|
|
||||||
/* external <==> internal mapping table */
|
/* external <==> internal mapping table */
|
||||||
struct metamac
|
struct metamac
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: trace.c,v 8.20.22.2 2000/09/17 17:04:27 gshapiro Exp $";
|
static char id[] = "@(#)$Id: trace.c,v 8.20.22.4 2001/08/15 13:05:43 ca Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
#include <sendmail.h>
|
#include <sendmail.h>
|
||||||
@ -63,7 +63,7 @@ void
|
|||||||
tTflag(s)
|
tTflag(s)
|
||||||
register char *s;
|
register char *s;
|
||||||
{
|
{
|
||||||
int first, last;
|
unsigned int first, last;
|
||||||
register unsigned int i;
|
register unsigned int i;
|
||||||
|
|
||||||
if (*s == '\0')
|
if (*s == '\0')
|
||||||
@ -73,16 +73,28 @@ tTflag(s)
|
|||||||
{
|
{
|
||||||
/* find first flag to set */
|
/* find first flag to set */
|
||||||
i = 0;
|
i = 0;
|
||||||
while (isascii(*s) && isdigit(*s))
|
while (isascii(*s) && isdigit(*s) && i < tTsize)
|
||||||
i = i * 10 + (*s++ - '0');
|
i = i * 10 + (*s++ - '0');
|
||||||
|
|
||||||
|
/*
|
||||||
|
** skip over rest of a too large number
|
||||||
|
** Maybe we should complain if out-of-bounds values are used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
while (isascii(*s) && isdigit(*s) && i >= tTsize)
|
||||||
|
s++;
|
||||||
first = i;
|
first = i;
|
||||||
|
|
||||||
/* find last flag to set */
|
/* find last flag to set */
|
||||||
if (*s == '-')
|
if (*s == '-')
|
||||||
{
|
{
|
||||||
i = 0;
|
i = 0;
|
||||||
while (isascii(*++s) && isdigit(*s))
|
while (isascii(*++s) && isdigit(*s) && i < tTsize)
|
||||||
i = i * 10 + (*s - '0');
|
i = i * 10 + (*s - '0');
|
||||||
|
|
||||||
|
/* skip over rest of a too large number */
|
||||||
|
while (isascii(*s) && isdigit(*s) && i >= tTsize)
|
||||||
|
s++;
|
||||||
}
|
}
|
||||||
last = i;
|
last = i;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
static char id[] = "@(#)$Id: version.c,v 8.43.4.37 2001/07/31 22:34:20 gshapiro Exp $";
|
static char id[] = "@(#)$Id: version.c,v 8.43.4.39 2001/08/20 14:45:34 gshapiro Exp $";
|
||||||
#endif /* ! lint */
|
#endif /* ! lint */
|
||||||
|
|
||||||
char Version[] = "8.11.5";
|
char Version[] = "8.11.6";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user