mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-31 14:17:41 +00:00
postfix-2.8.12
This commit is contained in:
committed by
Viktor Dukhovni
parent
54e513f22a
commit
f7cc184971
@@ -16829,3 +16829,20 @@ Apologies for any names omitted.
|
|||||||
command must wait until its requests have reached the pickup
|
command must wait until its requests have reached the pickup
|
||||||
and qmgr servers before closing the UNIX-domain request
|
and qmgr servers before closing the UNIX-domain request
|
||||||
sockets. Files: postqueue/postqueue.c, postqueue/Makefile.in.
|
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.
|
||||||
|
@@ -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 "20120520"
|
#define MAIL_RELEASE_DATE "20120801"
|
||||||
#define MAIL_VERSION_NUMBER "2.8.11"
|
#define MAIL_VERSION_NUMBER "2.8.12"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
|
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE
|
||||||
|
@@ -43,6 +43,7 @@
|
|||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
#include <msg.h>
|
#include <msg.h>
|
||||||
|
#include <iostuff.h>
|
||||||
|
|
||||||
/* Application-specific. */
|
/* Application-specific. */
|
||||||
|
|
||||||
@@ -81,9 +82,12 @@ void biff_notify(const char *text, ssize_t len)
|
|||||||
/*
|
/*
|
||||||
* Open a socket, or re-use an existing one.
|
* Open a socket, or re-use an existing one.
|
||||||
*/
|
*/
|
||||||
if (sock < 0 && (sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
if (sock < 0) {
|
||||||
msg_warn("socket: %m");
|
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||||
return;
|
msg_warn("socket: %m");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
close_on_exec(sock, CLOSE_ON_EXEC);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -152,6 +152,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");
|
smtpd_chat_reply(state, "503 5.5.1 Error: authentication not enabled");
|
||||||
return (-1);
|
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 (smtpd_milters != 0 && (err = milter_other_event(smtpd_milters)) != 0) {
|
||||||
if (err[0] == '5') {
|
if (err[0] == '5') {
|
||||||
state->error_mask |= MAIL_ERROR_POLICY;
|
state->error_mask |= MAIL_ERROR_POLICY;
|
||||||
|
@@ -63,7 +63,7 @@
|
|||||||
struct unix_pass_trigger {
|
struct unix_pass_trigger {
|
||||||
int fd;
|
int fd;
|
||||||
char *service;
|
char *service;
|
||||||
int *pair;
|
int pair[2];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* unix_pass_trigger_event - disconnect from peer */
|
/* 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 = (struct unix_pass_trigger *) mymalloc(sizeof(*up));
|
||||||
up->fd = fd;
|
up->fd = fd;
|
||||||
up->service = mystrdup(service);
|
up->service = mystrdup(service);
|
||||||
up->pair = pair;
|
up->pair[0] = pair[0];
|
||||||
|
up->pair[1] = pair[1];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write the request...
|
* Write the request...
|
||||||
|
Reference in New Issue
Block a user