2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 14:17:41 +00:00

postfix-2.11.4

This commit is contained in:
Wietse Venema
2015-02-08 00:00:00 -05:00
committed by Viktor Dukhovni
parent d058a158c3
commit 47ce65e715
6 changed files with 43 additions and 8 deletions

View File

@@ -19618,3 +19618,26 @@ Apologies for any names omitted.
Cleanup: revert the workaround that places headers inserted Cleanup: revert the workaround that places headers inserted
with PREPEND actions or policy requests BELOW Postfix's own with PREPEND actions or policy requests BELOW Postfix's own
Received: message header. File: smtpd/smtpd.c. Received: message header. File: smtpd/smtpd.c.
20141025
Bugfix (introduced: Postfix 2.11): core dump when
smtp_policy_maps specifies an invalid TLS level. Viktor
Dukhovni. File: smtp/smtp_tls_policy.c.
20150106
Robustness: don't segfault due to excessive recursion after
a faulty configuration runs into the virtual_alias_recursion_limit.
File: global/tok822_tree.c.
20150115
Safety: stop aliasing loops that exponentially increase the
address length with each iteration. Back-ported from Postfix
3.0. File: cleanup/cleanup_map1n.c.
20150117
Cleanup: missing " in \%s\" in postconf(1) fatal error
messages. Iain Hibbert. File: postconf/postconf_master.c.

View File

@@ -139,6 +139,15 @@ ARGV *cleanup_map1n_internal(CLEANUP_STATE *state, const char *addr,
if ((lookup = mail_addr_map(maps, STR(state->temp1), propagate)) != 0) { if ((lookup = mail_addr_map(maps, STR(state->temp1), propagate)) != 0) {
saved_lhs = mystrdup(argv->argv[arg]); saved_lhs = mystrdup(argv->argv[arg]);
for (i = 0; i < lookup->argc; i++) { for (i = 0; i < lookup->argc; i++) {
if (strlen(lookup->argv[i]) > var_line_limit) {
msg_warn("%s: unreasonable %s result %.300s... -- "
"message not accepted, try again later",
state->queue_id, maps->title, lookup->argv[i]);
state->errs |= CLEANUP_STAT_DEFER;
UPDATE(state->reason, "4.6.0 Alias expansion error");
UNEXPAND(argv, addr);
RETURN(argv);
}
unquote_822_local(state->temp1, lookup->argv[i]); unquote_822_local(state->temp1, lookup->argv[i]);
if (i == 0) { if (i == 0) {
UPDATE(argv->argv[arg], STR(state->temp1)); UPDATE(argv->argv[arg], STR(state->temp1));

View File

@@ -20,8 +20,8 @@
* 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 "20141019" #define MAIL_RELEASE_DATE "20150208"
#define MAIL_VERSION_NUMBER "2.11.3" #define MAIL_VERSION_NUMBER "2.11.4"
#ifdef SNAPSHOT #ifdef SNAPSHOT
#define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE #define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE

View File

@@ -259,11 +259,12 @@ TOK822 *tok822_sub_keep_after(TOK822 *t1, TOK822 *t2)
TOK822 *tok822_free_tree(TOK822 *tp) TOK822 *tok822_free_tree(TOK822 *tp)
{ {
if (tp) { TOK822 *next;
if (tp->next)
tok822_free_tree(tp->next); for (/* void */; tp != 0; tp = next) {
if (tp->head) if (tp->head)
tok822_free_tree(tp->head); tok822_free_tree(tp->head);
next = tp->next;
tok822_free(tp); tok822_free(tp);
} }
return (0); return (0);

View File

@@ -273,7 +273,7 @@ static void pcf_check_master_entry(ARGV *argv, const char *raw_text)
for (field = PCF_MASTER_FLD_PRIVATE; field <= PCF_MASTER_FLD_CHROOT; field++) { for (field = PCF_MASTER_FLD_PRIVATE; field <= PCF_MASTER_FLD_CHROOT; field++) {
cp = argv->argv[field]; cp = argv->argv[field];
if (cp[1] != 0 || strchr(pcf_valid_bool_types, *cp) == 0) if (cp[1] != 0 || strchr(pcf_valid_bool_types, *cp) == 0)
pcf_fix_fatal("invalid %s field \%s\" in \"%s\"", pcf_fix_fatal("invalid %s field \"%s\" in \"%s\"",
pcf_str_field_pattern(field), cp, raw_text); pcf_str_field_pattern(field), cp, raw_text);
} }
@@ -282,12 +282,12 @@ static void pcf_check_master_entry(ARGV *argv, const char *raw_text)
if (len > 0 && cp[len - 1] == '?') if (len > 0 && cp[len - 1] == '?')
len--; len--;
if (!(cp[0] == '-' && len == 1) && strspn(cp, "0123456789") != len) if (!(cp[0] == '-' && len == 1) && strspn(cp, "0123456789") != len)
pcf_fix_fatal("invalid " PCF_MASTER_NAME_WAKEUP " field \%s\" in \"%s\"", pcf_fix_fatal("invalid " PCF_MASTER_NAME_WAKEUP " field \"%s\" in \"%s\"",
cp, raw_text); cp, raw_text);
cp = argv->argv[PCF_MASTER_FLD_MAXPROC]; cp = argv->argv[PCF_MASTER_FLD_MAXPROC];
if (strcmp("-", cp) != 0 && cp[strspn(cp, "0123456789")] != 0) if (strcmp("-", cp) != 0 && cp[strspn(cp, "0123456789")] != 0)
pcf_fix_fatal("invalid " PCF_MASTER_NAME_MAXPROC " field \%s\" in \"%s\"", pcf_fix_fatal("invalid " PCF_MASTER_NAME_MAXPROC " field \"%s\" in \"%s\"",
cp, raw_text); cp, raw_text);
} }

View File

@@ -516,9 +516,11 @@ static void *policy_create(const char *unused_key, void *context)
switch (site_level) { switch (site_level) {
default: default:
tls->level = site_level; tls->level = site_level;
/* FALLTHROUGH */
case TLS_LEV_NOTFOUND: case TLS_LEV_NOTFOUND:
break; break;
case TLS_LEV_INVALID: case TLS_LEV_INVALID:
tls->level = site_level;
return ((void *) tls); return ((void *) tls);
} }