2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-29 21:27:57 +00:00

postfix-3.1-20151011

This commit is contained in:
Wietse Venema 2015-10-11 00:00:00 -05:00 committed by Viktor Dukhovni
parent 8bd03f14f0
commit 93652c83bf
12 changed files with 71 additions and 30 deletions

View File

@ -21932,10 +21932,10 @@ Apologies for any names omitted.
20150924 20150924
Cleanup (introduced: 20060510): eliminated a harmless Cleanup (introduced: 20060510, exposed 20150912): eliminated
warning message "seek error after reading END record: Illegal a harmless warning message "seek error after reading END
seek" from the cleanup server after a check_sender_access record: Illegal seek" from the cleanup server after a
DISCARD action. File: cleanup/cleanup.c. check_sender_access DISCARD action. File: cleanup/cleanup.c.
Bugfix (introduced: 20090216-24): incorrect postmulti error Bugfix (introduced: 20090216-24): incorrect postmulti error
message. Reported by Patrik Koetter. Fix by Viktor Dukhovni. message. Reported by Patrik Koetter. Fix by Viktor Dukhovni.
@ -21954,7 +21954,7 @@ Apologies for any names omitted.
Bugfix (introduced: 20031128): xtext_unquote() did not Bugfix (introduced: 20031128): xtext_unquote() did not
propagate error reports from xtext_unquote_append(), causing propagate error reports from xtext_unquote_append(), causing
the decoder to return partial ouput, instead of rejecting the decoder to return partial output, instead of rejecting
malformed input. Fix by Krzysztof Wojta. File: global/xtext.c. malformed input. Fix by Krzysztof Wojta. File: global/xtext.c.
20151003 20151003
@ -21967,3 +21967,25 @@ Apologies for any names omitted.
Cleanup: added missing "negative" unit tests. Files: Cleanup: added missing "negative" unit tests. Files:
global/xtext.c, global/uxtext.c. global/xtext.c, global/uxtext.c.
20151004
Future proofing: use a real VSTRING in the 20150930 header
PREPEND fix. File: cleanup/cleanup_message.c.
Future proofing: make vstring_import() consistent with
vstring_alloc(). The alternative would be to remove the
function as it is unused and exists only for symmetry with
vstring_export(). File: usr/vstring.c.
20151010
Cleanup: the 20150903 workaround for AIX DNSSEC used the
wrong name in #ifdef. File: dns/dns.h.
20151011
Cleanup: in the PCRE client, turn fatal lookup errors into
warnings, and skip the failing pattern as in dict_regexp.c.
Also, fixed the error text when running into the matcher's
backtracking limit. File: util/dict_pcre.c.

View File

@ -212,7 +212,7 @@ To find out what database types your Postfix system supports, use the "ppooss
are created with the postmap(1) or postalias(1) command, and private are created with the postmap(1) or postalias(1) command, and private
databases are maintained by Postfix daemons. The database name as used databases are maintained by Postfix daemons. The database name as used
in "hash:table" is the database file name without the ".db" suffix. in "hash:table" is the database file name without the ".db" suffix.
inline (read-only) iinnlliinnee (read-only)
A non-shared, in-memory lookup table. Example: "inline:{ key=value, A non-shared, in-memory lookup table. Example: "inline:{ key=value,
{ key = text with whitespace or comma }}". Key-value pairs are { key = text with whitespace or comma }}". Key-value pairs are
separated by whitespace or comma; whitespace after "{" and before "}" separated by whitespace or comma; whitespace after "{" and before "}"

View File

@ -313,7 +313,7 @@ private databases are maintained by Postfix daemons. The database
name as used in "<a href="DATABASE_README.html#types">hash</a>:table" is the database file name without the name as used in "<a href="DATABASE_README.html#types">hash</a>:table" is the database file name without the
".db" suffix. </dd> ".db" suffix. </dd>
<dt> <b></b>inline (read-only) </dt> <dt> <b>inline</b> (read-only) </dt>
<dd> A non-shared, in-memory lookup table. Example: "<a href="DATABASE_README.html#types">inline</a>:{ <dd> A non-shared, in-memory lookup table. Example: "<a href="DATABASE_README.html#types">inline</a>:{
<i>key=value</i>, { <i>key = text with whitespace or comma</i> }}". <i>key=value</i>, { <i>key = text with whitespace or comma</i> }}".

View File

@ -15597,7 +15597,7 @@ for authentication. The available types are listed with the
(default: empty)</b></DT><DD> (default: empty)</b></DT><DD>
<p> <p>
Optional lookup table with the SASL login names that own sender Optional lookup table with the SASL login names that own the sender
(MAIL FROM) addresses. (MAIL FROM) addresses.
</p> </p>

View File

@ -10522,7 +10522,7 @@ for authentication. The available types are listed with the
.PP .PP
This feature is available in Postfix 2.3 and later. This feature is available in Postfix 2.3 and later.
.SH smtpd_sender_login_maps (default: empty) .SH smtpd_sender_login_maps (default: empty)
Optional lookup table with the SASL login names that own sender Optional lookup table with the SASL login names that own the sender
(MAIL FROM) addresses. (MAIL FROM) addresses.
.PP .PP
Specify zero or more "type:name" lookup tables, separated by Specify zero or more "type:name" lookup tables, separated by

View File

@ -313,7 +313,7 @@ private databases are maintained by Postfix daemons. The database
name as used in "hash:table" is the database file name without the name as used in "hash:table" is the database file name without the
".db" suffix. </dd> ".db" suffix. </dd>
<dt> <b></b>inline (read-only) </dt> <dt> <b>inline</b> (read-only) </dt>
<dd> A non-shared, in-memory lookup table. Example: "inline:{ <dd> A non-shared, in-memory lookup table. Example: "inline:{
<i>key=value</i>, { <i>key = text with whitespace or comma</i> }}". <i>key=value</i>, { <i>key = text with whitespace or comma</i> }}".

View File

@ -6386,7 +6386,7 @@ smtpd_sasl_security_options = noanonymous, noplaintext
%PARAM smtpd_sender_login_maps %PARAM smtpd_sender_login_maps
<p> <p>
Optional lookup table with the SASL login names that own sender Optional lookup table with the SASL login names that own the sender
(MAIL FROM) addresses. (MAIL FROM) addresses.
</p> </p>

View File

@ -390,11 +390,18 @@ static const char *cleanup_act(CLEANUP_STATE *state, char *context,
msg_warn("bad PREPEND header text \"%s\" in %s map -- " msg_warn("bad PREPEND header text \"%s\" in %s map -- "
"need \"headername: headervalue\"", "need \"headername: headervalue\"",
optional_text, map_class); optional_text, map_class);
} else { }
VSTRING *temp; /* XXX Impedance mismatch. */
/*
* By design, cleanup_out_header() may modify content. Play safe
* and prepare for future developments.
*/
else {
VSTRING *temp;
cleanup_act_log(state, "prepend", context, buf, optional_text); cleanup_act_log(state, "prepend", context, buf, optional_text);
temp = vstring_import(mystrdup(optional_text)); temp = vstring_strcpy(vstring_alloc(strlen(optional_text)),
optional_text);
cleanup_out_header(state, temp); cleanup_out_header(state, temp);
vstring_free(temp); vstring_free(temp);
} }

View File

@ -57,7 +57,7 @@
/* /*
* Disable DNSSEC at compile-time even if RES_USE_DNSSEC is available * Disable DNSSEC at compile-time even if RES_USE_DNSSEC is available
*/ */
#ifdef DISABLE_DNSSEC #ifdef NO_DNSSEC
#undef RES_USE_DNSSEC #undef RES_USE_DNSSEC
#endif #endif

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no * Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only. * patchlevel; they change the release date only.
*/ */
#define MAIL_RELEASE_DATE "20151003" #define MAIL_RELEASE_DATE "20151011"
#define MAIL_VERSION_NUMBER "3.1" #define MAIL_VERSION_NUMBER "3.1"
#ifdef SNAPSHOT #ifdef SNAPSHOT

View File

@ -223,35 +223,42 @@ static void dict_pcre_exec_error(const char *mapname, int lineno, int errval)
return; return;
case PCRE_ERROR_NULL: case PCRE_ERROR_NULL:
case PCRE_ERROR_BADOPTION: case PCRE_ERROR_BADOPTION:
msg_fatal("pcre map %s, line %d: bad args to re_exec", msg_warn("pcre map %s, line %d: bad args to re_exec",
mapname, lineno); mapname, lineno);
return;
case PCRE_ERROR_BADMAGIC: case PCRE_ERROR_BADMAGIC:
case PCRE_ERROR_UNKNOWN_NODE: case PCRE_ERROR_UNKNOWN_NODE:
msg_fatal("pcre map %s, line %d: corrupt compiled regexp", msg_warn("pcre map %s, line %d: corrupt compiled regexp",
mapname, lineno); mapname, lineno);
return;
#ifdef PCRE_ERROR_NOMEMORY #ifdef PCRE_ERROR_NOMEMORY
case PCRE_ERROR_NOMEMORY: case PCRE_ERROR_NOMEMORY:
msg_fatal("pcre map %s, line %d: out of memory", msg_warn("pcre map %s, line %d: out of memory",
mapname, lineno); mapname, lineno);
return;
#endif #endif
#ifdef PCRE_ERROR_MATCHLIMIT #ifdef PCRE_ERROR_MATCHLIMIT
case PCRE_ERROR_MATCHLIMIT: case PCRE_ERROR_MATCHLIMIT:
msg_fatal("pcre map %s, line %d: matched text exceeds buffer limit", msg_warn("pcre map %s, line %d: backtracking limit exceeded",
mapname, lineno); mapname, lineno);
return;
#endif #endif
#ifdef PCRE_ERROR_BADUTF8 #ifdef PCRE_ERROR_BADUTF8
case PCRE_ERROR_BADUTF8: case PCRE_ERROR_BADUTF8:
msg_fatal("pcre map %s, line %d: bad UTF-8 sequence in search string", msg_warn("pcre map %s, line %d: bad UTF-8 sequence in search string",
mapname, lineno); mapname, lineno);
return;
#endif #endif
#ifdef PCRE_ERROR_BADUTF8_OFFSET #ifdef PCRE_ERROR_BADUTF8_OFFSET
case PCRE_ERROR_BADUTF8_OFFSET: case PCRE_ERROR_BADUTF8_OFFSET:
msg_fatal("pcre map %s, line %d: bad UTF-8 start offset in search string", msg_warn("pcre map %s, line %d: bad UTF-8 start offset in search string",
mapname, lineno); mapname, lineno);
return;
#endif #endif
default: default:
msg_fatal("pcre map %s, line %d: unknown re_exec error: %d", msg_warn("pcre map %s, line %d: unknown re_exec error: %d",
mapname, lineno, errval); mapname, lineno, errval);
return;
} }
} }

View File

@ -565,9 +565,14 @@ VSTRING *vstring_import(char *str)
vp = (VSTRING *) mymalloc(sizeof(*vp)); vp = (VSTRING *) mymalloc(sizeof(*vp));
len = strlen(str); len = strlen(str);
vp->vbuf.flags = 0;
vp->vbuf.len = 0;
vp->vbuf.data = (unsigned char *) str; vp->vbuf.data = (unsigned char *) str;
vp->vbuf.len = len + 1; vp->vbuf.len = len + 1;
VSTRING_AT_OFFSET(vp, len); VSTRING_AT_OFFSET(vp, len);
vp->vbuf.get_ready = vstring_buf_get_ready;
vp->vbuf.put_ready = vstring_buf_put_ready;
vp->vbuf.space = vstring_buf_space;
vp->maxlen = 0; vp->maxlen = 0;
return (vp); return (vp);
} }