Hello community,

here is the log from the commit of package postfix for openSUSE:Factory checked 
in at 2020-11-12 22:37:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/postfix (Old)
 and      /work/SRC/openSUSE:Factory/.postfix.new.24930 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "postfix"

Thu Nov 12 22:37:05 2020 rev:191 rq:846986 version:3.5.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/postfix/postfix.changes  2020-09-04 
10:52:56.950425258 +0200
+++ /work/SRC/openSUSE:Factory/.postfix.new.24930/postfix.changes       
2020-11-12 22:37:30.874024219 +0100
@@ -1,0 +2,22 @@
+Sun Nov  8 20:59:23 UTC 2020 - Michael Ströder <mich...@stroeder.com>
+
+- Update to 3.5.8
+  * The Postfix SMTP client inserted <CR><LF> into message headers longer
+    than $line_length_limit (default: 2048), causing all subsequent header
+    content to become message body content.
+  * The postscreen daemon did not save a copy of the
+    postscreen_dnsbl_reply_map lookup result. This has no effect when the
+    recommended texthash: look table is used, but it could result in stale
+    data with other lookup tables.
+  * After deleting a recipient with a Milter, the Postfix recipient
+    duplicate filter was not updated; the filter suppressed requests
+    to add the recipient back.
+  * Memory leak: the static: maps did not free their casefolding buffer.
+  * With "smtpd_tls_wrappermode = yes", the smtps service was waiting for a
+    TLS handshake, after processing an XCLIENT command.
+  * The smtp_sasl_mechanism_filter implementation ignored table lookup
+    errors, treating them as 'not found'.
+  * The code that looks for Delivered-To: headers ignored headers longer
+    than $line_length_limit (default: 2048).
+
+-------------------------------------------------------------------

Old:
----
  postfix-3.5.7.tar.gz
  postfix-3.5.7.tar.gz.asc

New:
----
  postfix-3.5.8.tar.gz
  postfix-3.5.8.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ postfix.spec ++++++
--- /var/tmp/diff_new_pack.5vXvcH/_old  2020-11-12 22:37:31.942025334 +0100
+++ /var/tmp/diff_new_pack.5vXvcH/_new  2020-11-12 22:37:31.946025338 +0100
@@ -56,7 +56,7 @@
 %endif
 %bcond_without ldap
 Name:           postfix
-Version:        3.5.7
+Version:        3.5.8
 Release:        0
 Summary:        A fast, secure, and flexible mailer
 License:        IPL-1.0 OR EPL-2.0

++++++ postfix-3.5.7.tar.gz -> postfix-3.5.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/HISTORY new/postfix-3.5.8/HISTORY
--- old/postfix-3.5.7/HISTORY   2020-08-30 16:15:56.000000000 +0200
+++ new/postfix-3.5.8/HISTORY   2020-11-05 00:11:27.000000000 +0100
@@ -24834,3 +24834,51 @@
 
        Cleanup: the posttls-finger '-X' option reported a false
        conflict with '-r'. File: posttls-finger/posttls-finger.c.
+
+20200830
+
+       Bugfix (introduced: Postfix 2.0): smtp_sasl_mechanism_filter
+       ignored table lookup errors, treating them as 'not found'.
+       Found during Postfix 3.6 development. File: smtp/smtp_sasl_proto.c.
+
+202000920
+
+       Bugfix (introduced: Postfix 2.3): when deleting a recipient
+       with a milter, delete the recipient from the duplicate
+       filter, so that the recipient can be added back. Backported
+       from Postfix 3.6. Files: global/been_here.[hc],
+       cleanup/cleanup_milter.c.
+
+20200925
+
+       Bugfix (introduced: before Postfix alpha): the code that
+       looks for Delivered-To: headers ignored headers longer than
+       $line_length_limit. Backported from Postfix 3.6. File:
+       global/delivered_hdr.c.
+
+20201011
+
+       Bugfix (introduced: Postfix 2.8): save a copy of the
+       postscreen_dnsbl_reply_map lookup result. This has no effect
+       when the recommended texthash: look table is used, but it
+       may avoid stale data with other lookup tables. File:
+       postscreen/postscreen_dnsbl.c.
+
+20201022
+
+       Bugfix (introduced: Postfix 2.2): after processing an
+       XCCLIENT command, the smtps service was waiting for a TLS
+       handshake. Found by Aki Tuomi. File: smtpd/smtpd.c.
+
+20201025
+
+       Bugfix (introduced: Postfix 2.3): static maps did not free
+       their casefolding buffer. File: util/dict_static.c.
+
+20201104
+
+       Bugfix (introduced: Postfix 3.5): the Postfix SMTP client
+       broke message headers longer than $line_length_limit, causing
+       subsequent header content to become message body content.
+       Reported by Andreas Weigel, fix by Viktor Dukhovni. File:
+       smtp/smtp_proto.c.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/cleanup/cleanup_milter.c 
new/postfix-3.5.8/src/cleanup/cleanup_milter.c
--- old/postfix-3.5.7/src/cleanup/cleanup_milter.c      2020-03-08 
16:42:19.000000000 +0100
+++ new/postfix-3.5.8/src/cleanup/cleanup_milter.c      2020-11-04 
22:06:12.000000000 +0100
@@ -1803,6 +1803,10 @@
                }
                count++;
            }
+           if (var_enable_orcpt)
+               been_here_drop(state->dups, "%s\n%d\n%s\n%s",
+                              dsn_orcpt ? dsn_orcpt : "", dsn_notify,
+                            orig_rcpt ? orig_rcpt : "", STR(int_rcpt_buf));
            /* FALLTHROUGH */
        case REC_TYPE_DRCP:                     /* canceled recipient */
        case REC_TYPE_DONE:                     /* can't happen */
@@ -1818,6 +1822,8 @@
            break;
        }
     }
+    if (var_enable_orcpt == 0 && count > 0)
+       been_here_drop_fixed(state->dups, STR(int_rcpt_buf));
 
     if (msg_verbose)
        msg_info("%s: deleted %d records for recipient \"%s\"",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/global/been_here.c 
new/postfix-3.5.8/src/global/been_here.c
--- old/postfix-3.5.7/src/global/been_here.c    2019-02-10 00:26:28.000000000 
+0100
+++ new/postfix-3.5.8/src/global/been_here.c    2020-11-04 22:06:12.000000000 
+0100
@@ -26,6 +26,14 @@
 /*     BH_TABLE *dup_filter;
 /*     char    *format;
 /*
+/*     int     been_here_drop_fixed(dup_filter, string)
+/*     BH_TABLE *dup_filter;
+/*     char    *string;
+/*
+/*     int     been_here_drop(dup_filter, format, ...)
+/*     BH_TABLE *dup_filter;
+/*     char    *format;
+/*
 /*     void    been_here_free(dup_filter)
 /*     BH_TABLE *dup_filter;
 /* DESCRIPTION
@@ -46,6 +54,16 @@
 /*     been_here_check_fixed() and been_here_check() are similar
 /*     but do not update the duplicate filter.
 /*
+/*     been_here_drop_fixed() looks up a fixed string in the given
+/*     table, and deletes the entry if the string was found. The
+/*     result is non-zero (true) if the string was found, zero
+/*     (false) otherwise.
+/*
+/*     been_here_drop() formats its arguments, looks up the result
+/*     in the given table, and removes the entry if the formatted
+/*     result was found. The result is non-zero (true) if the
+/*     formatted result was found, zero (false) otherwise.
+/*
 /*     been_here_free() releases storage for a duplicate filter.
 /*
 /*     Arguments:
@@ -243,6 +261,67 @@
 
     /*
      * Cleanup.
+     */
+    if (folded_string)
+       vstring_free(folded_string);
+
+    return (status);
+}
+
+/* been_here_drop - remove filter entry with finer control */
+
+int     been_here_drop(BH_TABLE *dup_filter, const char *fmt,...)
+{
+    VSTRING *buf = vstring_alloc(100);
+    int     status;
+    va_list ap;
+
+    /*
+     * Construct the string to be dropped.
+     */
+    va_start(ap, fmt);
+    vstring_vsprintf(buf, fmt, ap);
+    va_end(ap);
+
+    /*
+     * Drop the filter entry.
+     */
+    status = been_here_drop_fixed(dup_filter, vstring_str(buf));
+
+    /*
+     * Cleanup.
+     */
+    vstring_free(buf);
+    return (status);
+}
+
+/* been_here_drop_fixed - remove filter entry */
+
+int     been_here_drop_fixed(BH_TABLE *dup_filter, const char *string)
+{
+    VSTRING *folded_string;
+    const char *lookup_key;
+    int     status;
+
+    /*
+     * Special processing: case insensitive lookup.
+     */
+    if (dup_filter->flags & BH_FLAG_FOLD) {
+       folded_string = vstring_alloc(100);
+       lookup_key = casefold(folded_string, string);
+    } else {
+       folded_string = 0;
+       lookup_key = string;
+    }
+
+    /*
+     * Drop the filter entry.
+     */
+    if ((status = been_here_check_fixed(dup_filter, lookup_key)) != 0)
+       htable_delete(dup_filter->table, lookup_key, (void (*) (void *)) 0);
+
+    /*
+     * Cleanup.
      */
     if (folded_string)
        vstring_free(folded_string);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/global/been_here.h 
new/postfix-3.5.8/src/global/been_here.h
--- old/postfix-3.5.7/src/global/been_here.h    2019-02-10 00:26:58.000000000 
+0100
+++ new/postfix-3.5.8/src/global/been_here.h    2020-11-04 22:06:12.000000000 
+0100
@@ -35,6 +35,8 @@
 extern int PRINTFLIKE(2, 3) been_here(BH_TABLE *, const char *,...);
 extern int been_here_check_fixed(BH_TABLE *, const char *);
 extern int PRINTFLIKE(2, 3) been_here_check(BH_TABLE *, const char *,...);
+extern int been_here_drop_fixed(BH_TABLE *, const char *);
+extern int PRINTFLIKE(2, 3) been_here_drop(BH_TABLE *, const char *,...);
 
 /* LICENSE
 /* .ad
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/global/delivered_hdr.c 
new/postfix-3.5.8/src/global/delivered_hdr.c
--- old/postfix-3.5.7/src/global/delivered_hdr.c        2015-01-27 
16:22:33.000000000 +0100
+++ new/postfix-3.5.8/src/global/delivered_hdr.c        2020-11-04 
22:10:00.000000000 +0100
@@ -115,6 +115,8 @@
     char   *cp;
     DELIVERED_HDR_INFO *info;
     const HEADER_OPTS *hdr;
+    int     curr_type;
+    int     prev_type;
 
     /*
      * Sanity check.
@@ -130,15 +132,20 @@
 
     /*
      * XXX Assume that mail_copy() produces delivered-to headers that fit in
-     * a REC_TYPE_NORM record. Lowercase the delivered-to addresses for
-     * consistency.
+     * a REC_TYPE_NORM or REC_TYPE_CONT record. Lowercase the delivered-to
+     * addresses for consistency.
      * 
      * XXX Don't get bogged down by gazillions of delivered-to headers.
      */
 #define DELIVERED_HDR_LIMIT    1000
 
-    while (rec_get(fp, info->buf, 0) == REC_TYPE_NORM
-          && info->table->used < DELIVERED_HDR_LIMIT) {
+    for (prev_type = REC_TYPE_NORM;
+        info->table->used < DELIVERED_HDR_LIMIT
+        && ((curr_type = rec_get(fp, info->buf, 0)) == REC_TYPE_NORM
+            || curr_type == REC_TYPE_CONT);
+        prev_type = curr_type) {
+       if (prev_type != REC_TYPE_NORM)
+           continue;
        if (is_header(STR(info->buf))) {
            if ((hdr = header_opts_find(STR(info->buf))) != 0
                && hdr->type == HDR_DELIVERED_TO) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/global/mail_version.h 
new/postfix-3.5.8/src/global/mail_version.h
--- old/postfix-3.5.7/src/global/mail_version.h 2020-08-30 15:53:35.000000000 
+0200
+++ new/postfix-3.5.8/src/global/mail_version.h 2020-11-07 22:27:54.000000000 
+0100
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20200830"
-#define MAIL_VERSION_NUMBER    "3.5.7"
+#define MAIL_RELEASE_DATE      "20201107"
+#define MAIL_VERSION_NUMBER    "3.5.8"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/postscreen/postscreen_dnsbl.c 
new/postfix-3.5.8/src/postscreen/postscreen_dnsbl.c
--- old/postfix-3.5.7/src/postscreen/postscreen_dnsbl.c 2017-02-19 
02:58:20.000000000 +0100
+++ new/postfix-3.5.8/src/postscreen/postscreen_dnsbl.c 2020-11-04 
22:16:47.000000000 +0100
@@ -231,6 +231,7 @@
     int     weight;
     HTABLE_INFO *ht;
     char   *parse_err;
+    const char  *safe_dnsbl;
 
     /*
      * Parse the required DNSBL domain name, the optional reply filter and
@@ -271,8 +272,9 @@
        ht = htable_enter(dnsbl_site_cache, saved_site, (void *) head);
        /* Translate the DNSBL name into a safe name if available. */
        if (psc_dnsbl_reply == 0
-        || (head->safe_dnsbl = dict_get(psc_dnsbl_reply, saved_site)) == 0)
-           head->safe_dnsbl = ht->key;
+           || (safe_dnsbl = dict_get(psc_dnsbl_reply, saved_site)) == 0)
+           safe_dnsbl = ht->key;
+       head->safe_dnsbl = mystrdup(safe_dnsbl);
        if (psc_dnsbl_reply && psc_dnsbl_reply->error)
            msg_fatal("%s:%s lookup error", psc_dnsbl_reply->type,
                      psc_dnsbl_reply->name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/smtp/smtp_proto.c 
new/postfix-3.5.8/src/smtp/smtp_proto.c
--- old/postfix-3.5.7/src/smtp/smtp_proto.c     2019-06-13 23:08:33.000000000 
+0200
+++ new/postfix-3.5.8/src/smtp/smtp_proto.c     2020-11-04 22:26:11.000000000 
+0100
@@ -1389,17 +1389,17 @@
 
 /* smtp_out_raw_or_mime - output buffer, raw output or MIME-aware */
 
-static int smtp_out_raw_or_mime(SMTP_STATE *state, VSTRING *buf)
+static int smtp_out_raw_or_mime(SMTP_STATE *state, int rec_type, VSTRING *buf)
 {
     SMTP_SESSION *session = state->session;
     int     mime_errs;
 
     if (session->mime_state == 0) {
-       smtp_text_out((void *) state, REC_TYPE_NORM, vstring_str(buf),
+       smtp_text_out((void *) state, rec_type, vstring_str(buf),
                      VSTRING_LEN(buf), (off_t) 0);
     } else {
        mime_errs =
-           mime_state_update(session->mime_state, REC_TYPE_NORM,
+           mime_state_update(session->mime_state, rec_type,
                              vstring_str(buf), VSTRING_LEN(buf));
        if (mime_errs) {
            smtp_mime_fail(state, mime_errs);
@@ -1423,7 +1423,7 @@
                                 vstring_str(session->scratch2),
                                 QUOTE_FLAG_DEFAULT | QUOTE_FLAG_APPEND);
     vstring_strcat(session->scratch, gt);
-    return (smtp_out_raw_or_mime(state, session->scratch));
+    return (smtp_out_raw_or_mime(state, REC_TYPE_NORM, session->scratch));
 }
 
 /* smtp_out_add_headers - output additional headers, uses session->scratch* */
@@ -2307,7 +2307,8 @@
                while ((rec_type = rec_get(state->src, session->scratch, 0)) > 
0) {
                    if (rec_type != REC_TYPE_NORM && rec_type != REC_TYPE_CONT)
                        break;
-                   if (smtp_out_raw_or_mime(state, session->scratch) < 0)
+                   if (smtp_out_raw_or_mime(state, rec_type,
+                                            session->scratch) < 0)
                        RETURN(0);
                    prev_type = rec_type;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/smtp/smtp_sasl_proto.c 
new/postfix-3.5.8/src/smtp/smtp_sasl_proto.c
--- old/postfix-3.5.7/src/smtp/smtp_sasl_proto.c        2014-12-12 
20:33:27.000000000 +0100
+++ new/postfix-3.5.8/src/smtp/smtp_sasl_proto.c        2020-11-05 
00:33:50.000000000 +0100
@@ -102,6 +102,8 @@
            if (VSTRING_LEN(buf) > 0)
                VSTRING_ADDCH(buf, ' ');
            vstring_strcat(buf, mech);
+       } else if (smtp_sasl_mechs->error) {
+           msg_fatal("SASL mechanism filter failed for: '%s'", mech);
        }
     }
     myfree(save_mech);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/smtpd/smtpd.c 
new/postfix-3.5.8/src/smtpd/smtpd.c
--- old/postfix-3.5.7/src/smtpd/smtpd.c 2020-03-12 16:15:34.000000000 +0100
+++ new/postfix-3.5.8/src/smtpd/smtpd.c 2020-11-04 22:20:42.000000000 +0100
@@ -5458,7 +5458,8 @@
         * obsolete, so we don't have to provide perfect support.
         */
 #ifdef USE_TLS
-       if (SMTPD_STAND_ALONE(state) == 0 && var_smtpd_tls_wrappermode) {
+       if (SMTPD_STAND_ALONE(state) == 0 && var_smtpd_tls_wrappermode
+           && state->tls_context == 0) {
 #ifdef USE_TLSPROXY
            /* We garbage-collect the VSTREAM in smtpd_state_reset() */
            state->tlsproxy =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.7/src/util/dict_static.c 
new/postfix-3.5.8/src/util/dict_static.c
--- old/postfix-3.5.7/src/util/dict_static.c    2018-11-06 01:25:30.000000000 
+0100
+++ new/postfix-3.5.8/src/util/dict_static.c    2020-11-04 22:37:34.000000000 
+0100
@@ -73,6 +73,8 @@
 
     if (dict_static->value)
        myfree(dict_static->value);
+    if (dict->fold_buf)
+       vstring_free(dict->fold_buf);
     dict_free(dict);
 }
 
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to