]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.9.4 v2.9.4
authorWietse Venema <wietse@porcupine.org>
Wed, 1 Aug 2012 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Sat, 10 Feb 2018 17:55:11 +0000 (12:55 -0500)
postfix/HISTORY
postfix/src/global/mail_version.h
postfix/src/local/biff_notify.c
postfix/src/smtpd/smtpd_sasl_proto.c
postfix/src/util/unix_pass_trigger.c

index 0f043271a724040aab65d87efe18b3ee9a167890..50733a4790eae6eb08ead012ac6f00c9f919d6df 100644 (file)
@@ -17701,3 +17701,20 @@ Apologies for any names omitted.
        command must wait until its requests have reached the pickup
        and qmgr servers before closing the UNIX-domain request
        sockets.  Files: postqueue/postqueue.c, postqueue/Makefile.in.
+
+20120621
+
+       Bugfix (introduced: Postfix 2.8): the unused "pass" trigger
+       client could close the wrong file descriptors.  File:
+       util/unix_pass_trigger.c.
+
+20120702
+
+       Bugfix (introduced: 19990127): the BIFF client leaked an
+       unprivileged UDP socket. Fix by Jaroslav Skarvada.  File:
+       local/biff_notify.c.
+
+20120730
+
+       Bugfix (introduced: 20000314): AUTH is not allowed after
+       MAIL. Timo Sirainen.  File: smtpd/smtpd_sasl_proto.c.
index cd3f0ccffc57da9b72e9c365635aaf7233c488dd..ea529ff7439176869e002e52cc0a7688f33b9010 100644 (file)
@@ -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      "20120520"
-#define MAIL_VERSION_NUMBER    "2.9.3"
+#define MAIL_RELEASE_DATE      "20120801"
+#define MAIL_VERSION_NUMBER    "2.9.4"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index b189ad4b2d4a7302971ed279971b7ec3538644d2..ca7dc1645b1a18180a6c6ebaf4216a8ab59b0e34 100644 (file)
@@ -43,6 +43,7 @@
 /* Utility library. */
 
 #include <msg.h>
+#include <iostuff.h>
 
 /* Application-specific. */
 
@@ -81,9 +82,12 @@ void    biff_notify(const char *text, ssize_t len)
     /*
      * Open a socket, or re-use an existing one.
      */
-    if (sock < 0 && (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-       msg_warn("socket: %m");
-       return;
+    if (sock < 0) {
+       if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+           msg_warn("socket: %m");
+           return;
+       }
+       close_on_exec(sock, CLOSE_ON_EXEC);
     }
 
     /*
index 297a445a690d38f63adb9539537f00d8b9ee0e3d..ce0e7a1fb8230af1f08e92b1c9b1319dff8e12c6 100644 (file)
@@ -164,6 +164,12 @@ int     smtpd_sasl_auth_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *argv)
        smtpd_chat_reply(state, "503 5.5.1 Error: authentication not enabled");
        return (-1);
     }
+#define IN_MAIL_TRANSACTION(state) ((state)->sender != 0)
+    if (IN_MAIL_TRANSACTION(state)) {
+       state->error_mask |= MAIL_ERROR_PROTOCOL;
+       smtpd_chat_reply(state, "503 5.5.1 Error: MAIL transaction in progress");
+       return (-1);
+    }
     if (smtpd_milters != 0 && (err = milter_other_event(smtpd_milters)) != 0) {
        if (err[0] == '5') {
            state->error_mask |= MAIL_ERROR_POLICY;
index 61230092486c5e1830788b7f697269038f6bb2fa..ccf2cdd1676874f14c639d6f01aa8f232a82ac08 100644 (file)
@@ -63,7 +63,7 @@
 struct unix_pass_trigger {
     int     fd;
     char   *service;
-    int    *pair;
+    int     pair[2];
 };
 
 /* unix_pass_trigger_event - disconnect from peer */
@@ -129,7 +129,8 @@ int     unix_pass_trigger(const char *service, const char *buf, ssize_t len, int
     up = (struct unix_pass_trigger *) mymalloc(sizeof(*up));
     up->fd = fd;
     up->service = mystrdup(service);
-    up->pair = pair;
+    up->pair[0] = pair[0];
+    up->pair[1] = pair[1];
 
     /*
      * Write the request...