Hello community,

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

Package is "postfix"

Wed May 20 18:37:04 2020 rev:184 rq:807003 version:3.5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/postfix/postfix.changes  2020-05-14 
23:22:25.364670431 +0200
+++ /work/SRC/openSUSE:Factory/.postfix.new.2738/postfix.changes        
2020-05-20 18:37:08.184189724 +0200
@@ -1,0 +2,28 @@
+Sun May 17 19:57:57 UTC 2020 - Michael Ströder <mich...@stroeder.com>
+
+- Update to 3.5.2:
+  * A TLS error for a database client caused a false 'lost connection'
+    error for an SMTP over TLS session in the same Postfix process.
+    This bug was introduced with Postfix 2.2.
+  * The same bug existed in the tlsproxy(8) daemon, where a TLS
+    error for one TLS session could cause a false 'lost connection'
+    error for a concurrent TLS session in the same process. This
+    bug was introduced with Postfix 2.8.
+  * The Postfix build now disables DANE support on Linux systems
+    with libc-musl such as Alpine, because libc-musl provides no
+    indication whether DNS responses are authentic. This broke DANE
+    support without a clear explanation.
+  * Due to implementation changes in the ICU library, some Postfix
+    daemons reported file access errrors (U_FILE_ACCESS_ERROR) after
+    chroot(). This was fixed by initializing the ICU library before
+    making the chroot() call.
+  * Minor code changes to silence a compiler that special-cases
+    string literals.
+  * Segfault (null pointer) in the tlsproxy(8) client role when the
+    server role was disabled. This typically happened on systems
+    that do not receive mail, after configuring connection reuse
+    for outbound SMTP over TLS.
+  * The date portion of the maillog_file_rotate_suffix default value
+    used the minute (%M) instead of the month (%m).
+
+-------------------------------------------------------------------

Old:
----
  postfix-3.5.1.tar.gz

New:
----
  postfix-3.5.2.tar.gz

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

Other differences:
------------------
++++++ postfix.spec ++++++
--- /var/tmp/diff_new_pack.56vzDD/_old  2020-05-20 18:37:09.316192096 +0200
+++ /var/tmp/diff_new_pack.56vzDD/_new  2020-05-20 18:37:09.320192104 +0200
@@ -53,7 +53,7 @@
 %bcond_with    libnsl
 %endif
 Name:           postfix
-Version:        3.5.1
+Version:        3.5.2
 Release:        0
 Summary:        A fast, secure, and flexible mailer
 License:        IPL-1.0 OR EPL-2.0

++++++ postfix-3.5.1.tar.gz -> postfix-3.5.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/HISTORY new/postfix-3.5.2/HISTORY
--- old/postfix-3.5.1/HISTORY   2020-04-18 17:18:40.000000000 +0200
+++ new/postfix-3.5.2/HISTORY   2020-05-16 22:25:11.000000000 +0200
@@ -24680,3 +24680,60 @@
        Workaround for broken DANE support after an incompatible
        change in GLIBC 2.31. This avoids the need for new options
        in /etc/resolv.conf. Files: dns/dns.h, dns/dns_lookup.c.
+
+20200419
+
+       Bugfix: segfault in the tlsproxy client role when the server
+       role was disabled. This typically happens on systems that
+       do not receive mail, after configuring connection reuse for
+       outbound TLS. Found during program maintenance. File:
+       tlsproxy/tlsproxy.c.
+
+20200420
+
+       Noise suppression: shut up a compiler that special-cases
+       string literals. Viktor Dukhovni. File milter/milter.c.
+
+20200422
+
+       Security: disable DANE support on Alpine Linux because
+       libc-musl provides no indication whether DNS responses are
+       authentic. This broke DANE support without a clear explanation.
+       File: makedefs.
+
+20200505
+
+       Noise suppression: shut up a compiler that special-cases
+       string literals. Viktor Dukhovni. File smtpd/smtpd_check.c.
+
+20200509
+
+       Bugfix (introduced: Postfix 3.5): maillog_file_rotate_suffix
+       default value used the minute instead of the month. Reported
+       by Larry Stone. Files: conf/postfix-tls-script,
+       proto/MAILLOG_README.html, proto/postconf.proto.
+       global/mail_params.h, postfix/postfix.c.
+
+20200510
+
+       Bitrot: avoid U_FILE_ACCESS_ERROR after chroot(), by
+       initializing the ICU library before making the chroot()
+       call. Files: util/midna_domain.[hc], global/mail_params.c.
+
+20200511
+
+       Noise suppression: avoid "SSL_Shutdown:shutdown while in
+       init" warnings. File: tls/tls_session.c.
+
+20200515
+
+       Bugfix (introduced: Postfix 2.2): a TLS error for a PostgreSQL
+       client caused a false 'lost connection' error for an SMTP
+       over TLS session in the same Postfix process. Reported by
+       Alexander Vasarab, diagnosed by Viktor Dukhovni. File:
+       tls/tls_bio_ops.c.
+
+       Bugfix (introduced: Postfix 2.8): a TLS error for one TLS
+       session may cause a false 'lost connection' error for a
+       concurrent TLS session in the same tlsproxy process. File:
+       tlsproxy/tlsproxy.c.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/README_FILES/MAILLOG_README 
new/postfix-3.5.2/README_FILES/MAILLOG_README
--- old/postfix-3.5.1/README_FILES/MAILLOG_README       2019-05-18 
14:19:32.000000000 +0200
+++ new/postfix-3.5.2/README_FILES/MAILLOG_README       2020-05-09 
17:51:27.000000000 +0200
@@ -64,7 +64,7 @@
 
   * Rename the current logfile by appending a suffix that contains the date and
     time. This suffix is configured with the maillog_file_rotate_suffix
-    parameter (default: %Y%M%d-%H%M%S).
+    parameter (default: %Y%m%d-%H%M%S).
 
   * Reload Postfix so that postlogd(8) immediately closes the old logfile.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/RELEASE_NOTES 
new/postfix-3.5.2/RELEASE_NOTES
--- old/postfix-3.5.1/RELEASE_NOTES     2020-03-16 00:05:27.000000000 +0100
+++ new/postfix-3.5.2/RELEASE_NOTES     2020-05-16 23:20:59.000000000 +0200
@@ -25,6 +25,14 @@
 the software under the license of their choice. Those who are more
 comfortable with the IPL can continue with that license.
 
+libc-musl workaround for Postfix 3.2.15, 3.3.10, 3.4.12, and 3.5.2
+------------------------------------------------------------------
+
+Security: this release disables DANE support on Linux systems with
+libc-musl, because libc-musl provides no indication whether DNS
+responses are authentic. This broke DANE support without a clear
+explanation.
+
 Major changes - multiple relayhost in SMTP
 ------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/html/MAILLOG_README.html 
new/postfix-3.5.2/html/MAILLOG_README.html
--- old/postfix-3.5.1/html/MAILLOG_README.html  2019-05-18 14:19:32.000000000 
+0200
+++ new/postfix-3.5.2/html/MAILLOG_README.html  2020-05-09 17:51:27.000000000 
+0200
@@ -114,7 +114,7 @@
 
 <li> <p> Rename the current logfile by appending a suffix that
 contains the date and time. This suffix is configured with the
-<a 
href="postconf.5.html#maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
 parameter (default: %Y%M%d-%H%M%S). </p>
+<a 
href="postconf.5.html#maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
 parameter (default: %Y%m%d-%H%M%S). </p>
 
 <li> <p> Reload Postfix so that <a href="postlogd.8.html">postlogd(8)</a> 
immediately closes the
 old logfile. </p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/html/postconf.5.html 
new/postfix-3.5.2/html/postconf.5.html
--- old/postfix-3.5.1/html/postconf.5.html      2020-03-16 00:16:30.000000000 
+0100
+++ new/postfix-3.5.2/html/postconf.5.html      2020-05-09 17:51:27.000000000 
+0200
@@ -6329,7 +6329,7 @@
 </DD>
 
 <DT><b><a name="maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
-(default: %Y%M%d-%H%M%S)</b></DT><DD>
+(default: %Y%m%d-%H%M%S)</b></DT><DD>
 
 <p> The format of the suffix to append to $<a 
href="postconf.5.html#maillog_file">maillog_file</a> while rotating
 the file with "postfix logrotate". See strftime(3) for syntax. The
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/html/postfix.1.html 
new/postfix-3.5.2/html/postfix.1.html
--- old/postfix-3.5.1/html/postfix.1.html       2019-02-01 13:23:33.000000000 
+0100
+++ new/postfix-3.5.2/html/postfix.1.html       2020-05-09 17:51:27.000000000 
+0200
@@ -285,7 +285,7 @@
        <b><a 
href="postconf.5.html#maillog_file_prefixes">maillog_file_prefixes</a> (/var, 
/dev/stdout)</b>
               A list of allowed prefixes for a <a 
href="postconf.5.html#maillog_file">maillog_file</a> value.
 
-       <b><a 
href="postconf.5.html#maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
 (%Y%M%d-%H%M%S)</b>
+       <b><a 
href="postconf.5.html#maillog_file_rotate_suffix">maillog_file_rotate_suffix</a>
 (%Y%m%d-%H%M%S)</b>
               The format of the suffix to append to $<a 
href="postconf.5.html#maillog_file">maillog_file</a> while rotat-
               ing the file with "postfix logrotate".
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/makedefs new/postfix-3.5.2/makedefs
--- old/postfix-3.5.1/makedefs  2020-04-16 19:07:58.000000000 +0200
+++ new/postfix-3.5.2/makedefs  2020-05-06 16:10:47.000000000 +0200
@@ -228,6 +228,19 @@
  *) echo usage: $0 [system release] 1>&2; exit 1;;
 esac
 
+case "$SYSTEM" in
+ Linux)
+    case "`PATH=/bin:/usr/bin ldd /bin/sh`" in
+     *-musl-*)
+       case "$CCARGS" in
+        *-DNO_DNSSEC*) ;;
+        *) echo Warning: libc-musl breaks DANE/TLSA security. 1>&2
+           echo This build will not support DANE/TLSA. 1>&2
+           CCARGS="$CCARGS -DNO_DNSSEC";;
+       esac;;
+    esac;;
+esac
+
 case "$SYSTEM.$RELEASE" in
    SCO_SV.3.2) SYSTYPE=SCO5
                # Use the native compiler by default
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/man/man1/postfix.1 
new/postfix-3.5.2/man/man1/postfix.1
--- old/postfix-3.5.1/man/man1/postfix.1        2019-02-01 13:23:32.000000000 
+0100
+++ new/postfix-3.5.2/man/man1/postfix.1        2020-05-09 17:52:30.000000000 
+0200
@@ -252,7 +252,7 @@
 logrotate".
 .IP "\fBmaillog_file_prefixes (/var, /dev/stdout)\fR"
 A list of allowed prefixes for a maillog_file value.
-.IP "\fBmaillog_file_rotate_suffix (%Y%M%d\-%H%M%S)\fR"
+.IP "\fBmaillog_file_rotate_suffix (%Y%m%d\-%H%M%S)\fR"
 The format of the suffix to append to $maillog_file while rotating
 the file with "postfix logrotate".
 .IP "\fBpostlog_service_name (postlog)\fR"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/man/man5/postconf.5 
new/postfix-3.5.2/man/man5/postconf.5
--- old/postfix-3.5.1/man/man5/postconf.5       2020-03-16 00:16:31.000000000 
+0100
+++ new/postfix-3.5.2/man/man5/postconf.5       2020-05-09 17:52:30.000000000 
+0200
@@ -3822,7 +3822,7 @@
 whitespace.
 .PP
 This feature is available in Postfix 3.4 and later.
-.SH maillog_file_rotate_suffix (default: %Y%M%d\-%H%M%S)
+.SH maillog_file_rotate_suffix (default: %Y%m%d\-%H%M%S)
 The format of the suffix to append to $maillog_file while rotating
 the file with "postfix logrotate". See \fBstrftime\fR(3) for syntax. The
 default suffix, YYYYMMDD\-HHMMSS, allows logs to be rotated frequently.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/proto/MAILLOG_README.html 
new/postfix-3.5.2/proto/MAILLOG_README.html
--- old/postfix-3.5.1/proto/MAILLOG_README.html 2019-05-18 14:19:24.000000000 
+0200
+++ new/postfix-3.5.2/proto/MAILLOG_README.html 2020-05-09 17:51:27.000000000 
+0200
@@ -114,7 +114,7 @@
 
 <li> <p> Rename the current logfile by appending a suffix that
 contains the date and time. This suffix is configured with the
-maillog_file_rotate_suffix parameter (default: %Y%M%d-%H%M%S). </p>
+maillog_file_rotate_suffix parameter (default: %Y%m%d-%H%M%S). </p>
 
 <li> <p> Reload Postfix so that postlogd(8) immediately closes the
 old logfile. </p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/proto/postconf.proto 
new/postfix-3.5.2/proto/postconf.proto
--- old/postfix-3.5.1/proto/postconf.proto      2020-03-16 00:09:36.000000000 
+0100
+++ new/postfix-3.5.2/proto/postconf.proto      2020-05-09 17:51:27.000000000 
+0200
@@ -17651,7 +17651,7 @@
 
 <p> This feature is available in Postfix 3.4 and later. </p>
 
-%PARAM maillog_file_rotate_suffix %Y%M%d-%H%M%S
+%PARAM maillog_file_rotate_suffix %Y%m%d-%H%M%S
 
 <p> The format of the suffix to append to $maillog_file while rotating
 the file with "postfix logrotate". See strftime(3) for syntax. The
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/global/mail_params.c 
new/postfix-3.5.2/src/global/mail_params.c
--- old/postfix-3.5.1/src/global/mail_params.c  2020-01-11 14:04:08.000000000 
+0100
+++ new/postfix-3.5.2/src/global/mail_params.c  2020-05-13 01:32:37.000000000 
+0200
@@ -871,6 +871,8 @@
     var_smtputf8_enable = 0;
 #else
     midna_domain_transitional = var_idna2003_compat;
+    if (var_smtputf8_enable)
+       midna_domain_pre_chroot();
 #endif
     util_utf8_enable = var_smtputf8_enable;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/global/mail_params.h 
new/postfix-3.5.2/src/global/mail_params.h
--- old/postfix-3.5.1/src/global/mail_params.h  2020-01-26 21:36:42.000000000 
+0100
+++ new/postfix-3.5.2/src/global/mail_params.h  2020-05-09 17:51:27.000000000 
+0200
@@ -4181,7 +4181,7 @@
 extern char *var_maillog_file_comp;
 
 #define VAR_MAILLOG_FILE_STAMP "maillog_file_rotate_suffix"
-#define DEF_MAILLOG_FILE_STAMP "%Y%M%d-%H%M%S"
+#define DEF_MAILLOG_FILE_STAMP "%Y%m%d-%H%M%S"
 extern char *var_maillog_file_stamp;
 
 #define VAR_POSTLOG_SERVICE    "postlog_service_name"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/global/mail_version.h 
new/postfix-3.5.2/src/global/mail_version.h
--- old/postfix-3.5.1/src/global/mail_version.h 2020-04-18 16:45:42.000000000 
+0200
+++ new/postfix-3.5.2/src/global/mail_version.h 2020-05-16 23:43:20.000000000 
+0200
@@ -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      "20200418"
-#define MAIL_VERSION_NUMBER    "3.5.1"
+#define MAIL_RELEASE_DATE      "20200516"
+#define MAIL_VERSION_NUMBER    "3.5.2"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE      "-" MAIL_RELEASE_DATE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/milter/milter.c 
new/postfix-3.5.2/src/milter/milter.c
--- old/postfix-3.5.1/src/milter/milter.c       2020-02-02 21:49:15.000000000 
+0100
+++ new/postfix-3.5.2/src/milter/milter.c       2020-04-21 00:14:22.000000000 
+0200
@@ -620,14 +620,14 @@
   * names by skipping the redundant "milter_" prefix.
   */
 static ATTR_OVER_TIME time_table[] = {
-    7 + VAR_MILT_CONN_TIME, DEF_MILT_CONN_TIME, 0, 1, 0,
-    7 + VAR_MILT_CMD_TIME, DEF_MILT_CMD_TIME, 0, 1, 0,
-    7 + VAR_MILT_MSG_TIME, DEF_MILT_MSG_TIME, 0, 1, 0,
+    7 + (const char *) VAR_MILT_CONN_TIME, DEF_MILT_CONN_TIME, 0, 1, 0,
+    7 + (const char *) VAR_MILT_CMD_TIME, DEF_MILT_CMD_TIME, 0, 1, 0,
+    7 + (const char *) VAR_MILT_MSG_TIME, DEF_MILT_MSG_TIME, 0, 1, 0,
     0,
 };
 static ATTR_OVER_STR str_table[] = {
-    7 + VAR_MILT_PROTOCOL, 0, 1, 0,
-    7 + VAR_MILT_DEF_ACTION, 0, 1, 0,
+    7 + (const char *) VAR_MILT_PROTOCOL, 0, 1, 0,
+    7 + (const char *) VAR_MILT_DEF_ACTION, 0, 1, 0,
     0,
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/postfix/postfix.c 
new/postfix-3.5.2/src/postfix/postfix.c
--- old/postfix-3.5.1/src/postfix/postfix.c     2019-02-01 13:23:22.000000000 
+0100
+++ new/postfix-3.5.2/src/postfix/postfix.c     2020-05-09 17:51:27.000000000 
+0200
@@ -242,7 +242,7 @@
 /*     logrotate".
 /* .IP "\fBmaillog_file_prefixes (/var, /dev/stdout)\fR"
 /*     A list of allowed prefixes for a maillog_file value.
-/* .IP "\fBmaillog_file_rotate_suffix (%Y%M%d-%H%M%S)\fR"
+/* .IP "\fBmaillog_file_rotate_suffix (%Y%m%d-%H%M%S)\fR"
 /*     The format of the suffix to append to $maillog_file while rotating
 /*     the file with "postfix logrotate".
 /* .IP "\fBpostlog_service_name (postlog)\fR"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/smtpd/smtpd_check.c 
new/postfix-3.5.2/src/smtpd/smtpd_check.c
--- old/postfix-3.5.1/src/smtpd/smtpd_check.c   2020-03-16 00:02:51.000000000 
+0100
+++ new/postfix-3.5.2/src/smtpd/smtpd_check.c   2020-05-06 00:33:34.000000000 
+0200
@@ -486,20 +486,20 @@
   * parameter names by skipping the redundant "smtpd_policy_service_" prefix.
   */
 static ATTR_OVER_TIME time_table[] = {
-    21 + VAR_SMTPD_POLICY_TMOUT, DEF_SMTPD_POLICY_TMOUT, 0, 1, 0,
-    21 + VAR_SMTPD_POLICY_IDLE, DEF_SMTPD_POLICY_IDLE, 0, 1, 0,
-    21 + VAR_SMTPD_POLICY_TTL, DEF_SMTPD_POLICY_TTL, 0, 1, 0,
-    21 + VAR_SMTPD_POLICY_TRY_DELAY, DEF_SMTPD_POLICY_TRY_DELAY, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_TMOUT, DEF_SMTPD_POLICY_TMOUT, 0, 1, 
0,
+    21 + (const char *) VAR_SMTPD_POLICY_IDLE, DEF_SMTPD_POLICY_IDLE, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_TTL, DEF_SMTPD_POLICY_TTL, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_TRY_DELAY, 
DEF_SMTPD_POLICY_TRY_DELAY, 0, 1, 0,
     0,
 };
 static ATTR_OVER_INT int_table[] = {
-    21 + VAR_SMTPD_POLICY_REQ_LIMIT, 0, 0, 0,
-    21 + VAR_SMTPD_POLICY_TRY_LIMIT, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_REQ_LIMIT, 0, 0, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_TRY_LIMIT, 0, 1, 0,
     0,
 };
 static ATTR_OVER_STR str_table[] = {
-    21 + VAR_SMTPD_POLICY_DEF_ACTION, 0, 1, 0,
-    21 + VAR_SMTPD_POLICY_CONTEXT, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_DEF_ACTION, 0, 1, 0,
+    21 + (const char *) VAR_SMTPD_POLICY_CONTEXT, 0, 1, 0,
     0,
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/tls/tls_bio_ops.c 
new/postfix-3.5.2/src/tls/tls_bio_ops.c
--- old/postfix-3.5.1/src/tls/tls_bio_ops.c     2013-05-30 14:45:03.000000000 
+0200
+++ new/postfix-3.5.2/src/tls/tls_bio_ops.c     2020-05-15 16:37:05.000000000 
+0200
@@ -194,6 +194,13 @@
      * handling any pending network I/O.
      */
     for (;;) {
+
+       /*
+        * Flush the per-thread SSL error queue. Otherwise, errors from other
+        * code that also uses TLS may confuse SSL_get_error(3).
+        */
+       ERR_clear_error();
+
        if (hsfunc)
            status = hsfunc(TLScontext->con);
        else if (rfunc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/tls/tls_session.c 
new/postfix-3.5.2/src/tls/tls_session.c
--- old/postfix-3.5.1/src/tls/tls_session.c     2019-06-16 01:36:31.000000000 
+0200
+++ new/postfix-3.5.2/src/tls/tls_session.c     2020-05-13 01:33:19.000000000 
+0200
@@ -118,7 +118,7 @@
      * so we will not perform SSL_shutdown() and the session will be removed
      * as being bad.
      */
-    if (!failure) {
+    if (!failure && !SSL_in_init(TLScontext->con)) {
        retval = tls_bio_shutdown(vstream_fileno(stream), timeout, TLScontext);
        if (!var_tls_fast_shutdown && retval == 0)
            tls_bio_shutdown(vstream_fileno(stream), timeout, TLScontext);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/tlsproxy/tlsproxy.c 
new/postfix-3.5.2/src/tlsproxy/tlsproxy.c
--- old/postfix-3.5.1/src/tlsproxy/tlsproxy.c   2020-03-08 15:59:39.000000000 
+0100
+++ new/postfix-3.5.2/src/tlsproxy/tlsproxy.c   2020-05-15 15:29:14.000000000 
+0200
@@ -781,6 +781,7 @@
         */
        if (state->flags & TLSP_FLAG_DO_HANDSHAKE) {
            state->timeout = state->handshake_timeout;
+           ERR_clear_error();
            if (state->is_server_role)
                ssl_stat = SSL_accept(tls_context->con);
            else
@@ -809,6 +810,7 @@
        if (NBBIO_ERROR_FLAGS(plaintext_buf)) {
            if (NBBIO_ACTIVE_FLAGS(plaintext_buf))
                nbbio_disable_readwrite(state->plaintext_buf);
+           ERR_clear_error();
            if (!SSL_in_init(tls_context->con)
                && (ssl_stat = SSL_shutdown(tls_context->con)) < 0) {
                handshake_err = SSL_get_error(tls_context->con, ssl_stat);
@@ -838,6 +840,7 @@
         */
        ssl_write_err = SSL_ERROR_NONE;
        while (NBBIO_READ_PEND(plaintext_buf) > 0) {
+           ERR_clear_error();
            ssl_stat = SSL_write(tls_context->con, 
NBBIO_READ_BUF(plaintext_buf),
                                 NBBIO_READ_PEND(plaintext_buf));
            ssl_write_err = SSL_get_error(tls_context->con, ssl_stat);
@@ -870,6 +873,7 @@
         */
        ssl_read_err = SSL_ERROR_NONE;
        while (NBBIO_WRITE_PEND(state->plaintext_buf) < 
NBBIO_BUFSIZE(plaintext_buf)) {
+           ERR_clear_error();
            ssl_stat = SSL_read(tls_context->con,
                                NBBIO_WRITE_BUF(plaintext_buf)
                                + NBBIO_WRITE_PEND(state->plaintext_buf),
@@ -1493,16 +1497,15 @@
                            TLSP_INIT_TIMEOUT, (void *) state);
 }
 
-/* pre_jail_init - pre-jail initialization */
+/* pre_jail_init_server - pre-jail initialization */
 
-static void pre_jail_init(char *unused_name, char **unused_argv)
+static void pre_jail_init_server(void)
 {
     TLS_SERVER_INIT_PROPS props;
     const char *cert_file;
     int     have_server_cert;
     int     no_server_cert_ok;
     int     require_server_cert;
-    int     clnt_use_tls;
 
     /*
      * The code in this routine is pasted literally from smtpd(8). I am not
@@ -1535,7 +1538,7 @@
     }
     var_tlsp_use_tls = var_tlsp_use_tls || var_tlsp_enforce_tls;
     if (!var_tlsp_use_tls) {
-       msg_warn("TLS service is requested, but disabled with %s or %s",
+       msg_warn("TLS server role is disabled with %s or %s",
                 VAR_TLSP_TLS_LEVEL, VAR_TLSP_USE_TLS);
        return;
     }
@@ -1626,6 +1629,13 @@
        SSL_CTX_set_mode(tlsp_server_ctx->ssl_ctx,
                         SSL_MODE_ENABLE_PARTIAL_WRITE
                         | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER);
+}
+
+/* pre_jail_init_client - pre-jail initialization */
+
+static void pre_jail_init_client(void)
+{
+    int     clnt_use_tls;
 
     /*
      * The cache with TLS_APPL_STATE instances for different TLS_CLIENT_INIT
@@ -1737,6 +1747,18 @@
                msg_warn("TLS client initialization failed");
        }
     }
+}
+
+/* pre_jail_init - pre-jail initialization */
+
+static void pre_jail_init(char *unused_name, char **unused_argv)
+{
+
+    /*
+     * Initialize roles separately.
+     */
+    pre_jail_init_server();
+    pre_jail_init_client();
 
     /*
      * tlsp_client_init() needs to know if it is called pre-jail or
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/util/midna_domain.c 
new/postfix-3.5.2/src/util/midna_domain.c
--- old/postfix-3.5.1/src/util/midna_domain.c   2016-12-04 18:40:19.000000000 
+0100
+++ new/postfix-3.5.2/src/util/midna_domain.c   2020-05-13 01:32:37.000000000 
+0200
@@ -20,6 +20,8 @@
 /*
 /*     const char *midna_domain_suffix_to_utf8(
 /*     const char *name)
+/* AUXILIARY FUNCTIONS
+/*     void midna_domain_pre_chroot(void)
 /* DESCRIPTION
 /*     The functions in this module transform domain names from/to
 /*     ASCII and UTF-8 form. The result is cached to avoid repeated
@@ -52,6 +54,8 @@
 /*
 /*     midna_domain_transitional enables transitional conversion
 /*     between UTF8 and ASCII labels.
+/*
+/*     midna_domain_pre_chroot() does some pre-chroot initialization.
 /* SEE ALSO
 /*     http://unicode.org/reports/tr46/ Unicode IDNA Compatibility processing
 /*     msg(3) diagnostics interface
@@ -144,6 +148,22 @@
     }
 }
 
+/* midna_domain_pre_chroot - pre-chroot initialization */
+
+void    midna_domain_pre_chroot(void)
+{
+    UErrorCode error = U_ZERO_ERROR;
+    UIDNAInfo info = UIDNA_INFO_INITIALIZER;
+    UIDNA  *idna;
+
+    idna = uidna_openUTS46(midna_domain_transitional ? UIDNA_DEFAULT
+                          : UIDNA_NONTRANSITIONAL_TO_ASCII, &error);
+    if (U_FAILURE(error))
+       msg_warn("ICU library initialization failed: %s",
+                midna_domain_strerror(error, info.errors));
+    uidna_close(idna);
+}
+
 /* midna_domain_to_ascii_create - convert domain to ASCII */
 
 static void *midna_domain_to_ascii_create(const char *name, void 
*unused_context)
@@ -327,6 +347,7 @@
  /*
   * Test program - reads names from stdin, reports invalid names to stderr.
   */
+#include <unistd.h>
 #include <stdlib.h>
 #include <locale.h>
 
@@ -350,6 +371,11 @@
     /* msg_verbose = 1; */
     util_utf8_enable = 1;
 
+    if (geteuid() == 0) {
+       midna_domain_pre_chroot();
+       if (chroot(".") != 0)
+           msg_fatal("chroot(\".\"): %m");
+    }
     while (vstring_fgets_nonl(buffer, VSTREAM_IN)) {
        bp = STR(buffer);
        msg_info("> %s", bp);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/postfix-3.5.1/src/util/midna_domain.h 
new/postfix-3.5.2/src/util/midna_domain.h
--- old/postfix-3.5.1/src/util/midna_domain.h   2016-11-05 23:38:56.000000000 
+0100
+++ new/postfix-3.5.2/src/util/midna_domain.h   2020-05-13 01:32:37.000000000 
+0200
@@ -18,6 +18,7 @@
 extern const char *midna_domain_to_utf8(const char *);
 extern const char *midna_domain_suffix_to_ascii(const char *);
 extern const char *midna_domain_suffix_to_utf8(const char *);
+extern void midna_domain_pre_chroot(void);
 
 extern int midna_domain_cache_size;
 extern int midna_domain_transitional;


Reply via email to