2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-30 05:38:06 +00:00

snapshot-20011008

This commit is contained in:
Wietse Venema 2001-10-08 00:00:00 -05:00 committed by Viktor Dukhovni
parent 3d5513e695
commit d1f6c6552f
9 changed files with 77 additions and 38 deletions

View File

@ -5436,15 +5436,16 @@ Apologies for any names omitted.
20010907 20010907
Workaround: the Postfix qmqp-source program produced mail Workaround: the Postfix qmqp-source program produced mail
not ending in newline that qmail-qmqpd accepts but that not ending in newline. qmail-qmqpd accepts such mail, but
qmail-remote was unable to deliver. Matthias Andree, qmail-remote is unable to deliver it. Matthias Andree,
uni-dortmund.de. File: smtpstone/qmqp-source.c. uni-dortmund.de. File: smtpstone/qmqp-source.c.
20010910 20010910
Bugfix: smtp-sink broke when RCPT TO commands crossed a Bugfix: the smtp-sink stress test program broke when RCPT
network packet boundary. Problem reported by Matthias TO commands crossed network packet boundaries. Problem
Andree, uni-dortmund.de. File: smtpstone/smtp-sink.c. reported by Matthias Andree, uni-dortmund.de. File:
smtpstone/smtp-sink.c.
20010917 20010917
@ -5453,7 +5454,7 @@ Apologies for any names omitted.
additional restriction via the permit_mx_backup_networks additional restriction via the permit_mx_backup_networks
parameter (accept mail only if the primary MX hosts match parameter (accept mail only if the primary MX hosts match
the specified list of network blocks). This second restriction the specified list of network blocks). This second restriction
is now entirely optional, for backwards compatiblity. is now entirely optional, for backwards compatibility.
Bugfix: an address extension could be appended multiple Bugfix: an address extension could be appended multiple
times to the result of a canonical or virtual map lookup. times to the result of a canonical or virtual map lookup.
@ -5469,21 +5470,27 @@ Apologies for any names omitted.
20010918 20010918
Bugfix: the mail_addr_map() fix was almost but not quite Bugfix: the mail_addr_map() fix was almost but not quite
right. It took two really clever people and several iterations right. It took two clever people and several iterations of
of email to really fix the mail_addr_map() problem. Thanks email to really fix the mail_addr_map() problem. Thanks
to Victor Duchovni and Liviu Daia. to Victor Duchovni and Liviu Daia.
20011006 20011006
Cleanup: Postfix no longer flushes the whole deferred queue Cleanup: Postfix no longer flushes the whole deferred queue
after an ETRN request for a random domain name; the SMTP after an ETRN request for a random domain name (i.e. a
domain name not matched by $fast_flush_domains); the SMTP
server instead replies with "459 service unavailable". server instead replies with "459 service unavailable".
Files: smtpd/smtpd.c, global/flush_clnt.c, flush/flush.c. Files: smtpd/smtpd.c, global/flush_clnt.c, flush/flush.c.
20011008
Bugfix: there was a minute memory leak when an smtpd access
restriction is misconfigured. File: smtpd/smtpd_check.c.
Open problems: Open problems:
Minor: The $process_id_directory setting is not used anywhere Minor: The $process_id_directory setting is not used anywhere
in Postfix. Problem reported by Michael Smith, texas.net. in Postfix. Problem reported by Michael Smith, texas.net.
Medium: address rewriting should be configurable for envelopes Medium: address rewriting should be on/off configurable
and headers. for envelopes and/or headers.

View File

@ -1,16 +1,24 @@
Incompatible changes with snapshot-20011007 Incompatible changes with snapshot-20011008
=========================================== ===========================================
Postfix no longer flushes the whole queue after an ETRN request The Postfix SMTP server now rejects requests with a generic "try
for a random domain name. Requests for random domain names are now again later" status (451 Server configuration error) when it detects
an error in smtp_{client,helo,sender,recipient,etrn}_restrictions
settings. More details about the problem are logged to the syslogd;
sending such information to random clients would be inappropriate.
Postfix no longer flushes the entire mail queue after receiving an
ETRN request for a random domain name. Requests for random domain
names (i.e. names that do not match $fast_flush_domains) are now
rejected instead. rejected instead.
The permit_mx_backup feature has changed. It accepts mail when the The permit_mx_backup behavior is back to the behavior before snapshot
local machine is listed in the DNS as MX relay host for the given 20010808. It accepts mail whenever the local MTA is listed in the
destination. The optional permit_mx_backup_networks parameter can DNS as an MX relay host for a destination, even when you never gave
further require that the primary MX hosts for the given destinations permission to do so. To restrict use of this feature, specify
match specific network blocks. This optional restriction is off by network address blocks via the permit_mx_backup_networks parameter.
default. This requires that the primary MX hosts for the given destination
match the specified network blocks.
Incompatible changes with snapshot-20010808 Incompatible changes with snapshot-20010808
=========================================== ===========================================

View File

@ -58,9 +58,9 @@ SMTPD(8) SMTPD(8)
<b>Compatibility</b> <b>controls</b> <b>Compatibility</b> <b>controls</b>
<b>strict</b><i>_</i><b>rfc821</b><i>_</i><b>envelopes</b> <b>strict</b><i>_</i><b>rfc821</b><i>_</i><b>envelopes</b>
Disallow non-<a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a> style addresses in envelopes. Disallow non-<a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a> style addresses in SMTP com-
For example, allow <a href="http://www.faqs.org/rfcs/rfc822.html">RFC822</a>-style address forms with mands. For example, the RFC822-style address forms
comments, like Sendmail does. with comments that Sendmail allows.
<b>broken</b><i>_</i><b>sasl</b><i>_</i><b>auth</b><i>_</i><b>clients</b> <b>broken</b><i>_</i><b>sasl</b><i>_</i><b>auth</b><i>_</i><b>clients</b>
Support older Microsoft clients that mis-implement Support older Microsoft clients that mis-implement

View File

@ -70,8 +70,8 @@ a configuration change.
.ad .ad
.fi .fi
.IP \fBstrict_rfc821_envelopes\fR .IP \fBstrict_rfc821_envelopes\fR
Disallow non-RFC 821 style addresses in envelopes. For example, Disallow non-RFC 821 style addresses in SMTP commands. For example,
allow RFC822-style address forms with comments, like Sendmail does. the RFC822-style address forms with comments that Sendmail allows.
.IP \fBbroken_sasl_auth_clients\fR .IP \fBbroken_sasl_auth_clients\fR
Support older Microsoft clients that mis-implement the AUTH Support older Microsoft clients that mis-implement the AUTH
protocol, and that expect an EHLO response of "250 AUTH=list" protocol, and that expect an EHLO response of "250 AUTH=list"

View File

@ -15,7 +15,7 @@
* Version of this program. * Version of this program.
*/ */
#define VAR_MAIL_VERSION "mail_version" #define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "Snapshot-20011007" #define DEF_MAIL_VERSION "Snapshot-20011008"
extern char *var_mail_version; extern char *var_mail_version;
/* LICENSE /* LICENSE

View File

@ -56,8 +56,8 @@
/* .ad /* .ad
/* .fi /* .fi
/* .IP \fBstrict_rfc821_envelopes\fR /* .IP \fBstrict_rfc821_envelopes\fR
/* Disallow non-RFC 821 style addresses in envelopes. For example, /* Disallow non-RFC 821 style addresses in SMTP commands. For example,
/* allow RFC822-style address forms with comments, like Sendmail does. /* the RFC822-style address forms with comments that Sendmail allows.
/* .IP \fBbroken_sasl_auth_clients\fR /* .IP \fBbroken_sasl_auth_clients\fR
/* Support older Microsoft clients that mis-implement the AUTH /* Support older Microsoft clients that mis-implement the AUTH
/* protocol, and that expect an EHLO response of "250 AUTH=list" /* protocol, and that expect an EHLO response of "250 AUTH=list"

View File

@ -1380,6 +1380,7 @@ static int check_table_result(SMTPD_STATE *state, const char *table,
char *myname = "check_table_result"; char *myname = "check_table_result";
int code; int code;
ARGV *restrictions; ARGV *restrictions;
jmp_buf savebuf;
int status; int status;
if (msg_verbose) if (msg_verbose)
@ -1456,8 +1457,21 @@ static int check_table_result(SMTPD_STATE *state, const char *table,
* Recursively evaluate the restrictions given in the right-hand side. In * Recursively evaluate the restrictions given in the right-hand side. In
* the dark ages, an empty right-hand side meant OK. Make some * the dark ages, an empty right-hand side meant OK. Make some
* discouraging comments. * discouraging comments.
*
* XXX Jump some hoops to avoid a minute memory leak in case of a file
* configuration error.
*/ */
#define ADDROF(x) ((char *) &(x))
restrictions = argv_split(value, " \t\r\n,"); restrictions = argv_split(value, " \t\r\n,");
memcpy(ADDROF(savebuf), ADDROF(smtpd_check_buf), sizeof(savebuf));
status = setjmp(smtpd_check_buf);
if (status != 0) {
argv_free(restrictions);
memcpy(ADDROF(smtpd_check_buf), ADDROF(savebuf),
sizeof(smtpd_check_buf));
longjmp(smtpd_check_buf, status);
}
if (restrictions->argc == 0) { if (restrictions->argc == 0) {
msg_warn("SMTPD access map %s entry %s has empty value", msg_warn("SMTPD access map %s entry %s has empty value",
table, value); table, value);
@ -1776,7 +1790,7 @@ static int reject_maps_rbl(SMTPD_STATE *state)
/* is_map_command - restriction has form: check_xxx_access type:name */ /* is_map_command - restriction has form: check_xxx_access type:name */
static int is_map_command(SMTPD_STATE *state, const char *name, static int is_map_command(SMTPD_STATE *state, const char *name,
const char *command, char ***argp) const char *command, char ***argp)
{ {
/* /*
@ -2324,6 +2338,13 @@ char *smtpd_check_size(SMTPD_STATE *state, off_t size)
{ {
char *myname = "smtpd_check_size"; char *myname = "smtpd_check_size";
struct fsspace fsbuf; struct fsspace fsbuf;
int status;
/*
* Return here in case of serious trouble.
*/
if ((status = setjmp(smtpd_check_buf)) != 0)
return (status == SMTPD_CHECK_REJECT ? STR(error_text) : 0);
/* /*
* Avoid overflow/underflow when comparing message size against available * Avoid overflow/underflow when comparing message size against available
@ -2399,6 +2420,7 @@ char *var_virtual_maps;
char *var_virt_mailbox_maps; char *var_virt_mailbox_maps;
char *var_relocated_maps; char *var_relocated_maps;
char *var_local_rcpt_maps; char *var_local_rcpt_maps;
char *var_perm_mx_networks;
typedef struct { typedef struct {
char *name; char *name;
@ -2420,6 +2442,7 @@ static STRING_TABLE string_table[] = {
VAR_VIRT_MAILBOX_MAPS, DEF_VIRT_MAILBOX_MAPS, &var_virt_mailbox_maps, VAR_VIRT_MAILBOX_MAPS, DEF_VIRT_MAILBOX_MAPS, &var_virt_mailbox_maps,
VAR_RELOCATED_MAPS, DEF_RELOCATED_MAPS, &var_relocated_maps, VAR_RELOCATED_MAPS, DEF_RELOCATED_MAPS, &var_relocated_maps,
VAR_LOCAL_RCPT_MAPS, DEF_LOCAL_RCPT_MAPS, &var_local_rcpt_maps, VAR_LOCAL_RCPT_MAPS, DEF_LOCAL_RCPT_MAPS, &var_local_rcpt_maps,
VAR_PERM_MX_NETWORKS, DEF_PERM_MX_NETWORKS, &var_perm_mx_networks, 0, 0,
0, 0,
}; };

View File

@ -5,11 +5,10 @@
/* multi-threaded SMTP/LMTP test server /* multi-threaded SMTP/LMTP test server
/* SYNOPSIS /* SYNOPSIS
/* .fi /* .fi
/* \fBsmtp-sink\fR [\fB-cLpv\fR] [\fB-n \fIcount\fR] [\fB-w \fIdelay\fR] /* \fBsmtp-sink\fR [\fIoptions\fR] [\fBinet:\fR][\fIhost\fR]:\fIport\fR
/* [\fBinet:\fR][\fIhost\fR]:\fIport\fR \fIbacklog\fR /* \fIbacklog\fR
/* /*
/* \fBsmtp-sink\fR [\fB-cLpv\fR] [\fB-n \fIcount\fR] [\fB-w \fIdelay\fR] /* \fBsmtp-sink\fR [\fIoptions\fR] \fBunix:\fR\fIpathname\fR \fIbacklog\fR
/* \fBunix:\fR\fIpathname\fR \fIbacklog\fR
/* DESCRIPTION /* DESCRIPTION
/* \fIsmtp-sink\fR listens on the named host (or address) and port. /* \fIsmtp-sink\fR listens on the named host (or address) and port.
/* It takes SMTP messages from the network and throws them away. /* It takes SMTP messages from the network and throws them away.
@ -26,8 +25,7 @@
/* .IP \fB-L\fR /* .IP \fB-L\fR
/* Speak LMTP rather than SMTP. /* Speak LMTP rather than SMTP.
/* .IP "\fB-n \fIcount\fR" /* .IP "\fB-n \fIcount\fR"
/* Terminate after \fIcount\fR sessions. This is for memory leak /* Terminate after \fIcount\fR sessions. This is for testing purposes.
/* testing purposes.
/* .IP \fB-p\fR /* .IP \fB-p\fR
/* Disable ESMTP command pipelining. /* Disable ESMTP command pipelining.
/* .IP \fB-v\fR /* .IP \fB-v\fR
@ -36,11 +34,13 @@
/* Wait \fIdelay\fR seconds before responding to a DATA command. /* Wait \fIdelay\fR seconds before responding to a DATA command.
/* .IP [\fBinet:\fR][\fIhost\fR]:\fIport\fR /* .IP [\fBinet:\fR][\fIhost\fR]:\fIport\fR
/* Listen on network interface \fIhost\fR (default: any interface) /* Listen on network interface \fIhost\fR (default: any interface)
/* TCP port \fIport\fR. /* TCP port \fIport\fR. Both \fIhost\fR and \fIport\fR may be
/* specified in numeric or symbolic form.
/* .IP \fBunix:\fR\fIpathname\fR /* .IP \fBunix:\fR\fIpathname\fR
/* Listen on the UNIX-domain socket at \fIpathname\fR. /* Listen on the UNIX-domain socket at \fIpathname\fR.
/* .IP \fIbacklog\fR /* .IP \fIbacklog\fR
/* The maximum length the queue of pending connections. /* The maximum length the queue of pending connections,
/* as defined by the listen(2) call.
/* SEE ALSO /* SEE ALSO
/* smtp-source, SMTP/LMTP test message generator /* smtp-source, SMTP/LMTP test message generator
/* LICENSE /* LICENSE

View File

@ -9,7 +9,8 @@
/* /*
/* \fBsmtp-source\fR [\fIoptions\fR] \fBunix:\fIpathname\fR /* \fBsmtp-source\fR [\fIoptions\fR] \fBunix:\fIpathname\fR
/* DESCRIPTION /* DESCRIPTION
/* smtp-source connects to the named host and TCP port (default port 25) /* smtp-source connects to the named \fIhost\fR and TCP \fIport\fR
/* (default: port 25)
/* and sends one or more messages to it, either sequentially /* and sends one or more messages to it, either sequentially
/* or in parallel. The program speaks either SMTP (default) or /* or in parallel. The program speaks either SMTP (default) or
/* LMTP. Connections can be made to UNIX-domain and IPV4 servers. /* LMTP. Connections can be made to UNIX-domain and IPV4 servers.