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

postfix-2.8.13

This commit is contained in:
Wietse Venema
2012-12-13 00:00:00 -05:00
committed by Viktor Dukhovni
parent f7cc184971
commit 88a9e7847a
8 changed files with 54 additions and 13 deletions

View File

@@ -16846,3 +16846,33 @@ Apologies for any names omitted.
Bugfix (introduced: 20000314): AUTH is not allowed after Bugfix (introduced: 20000314): AUTH is not allowed after
MAIL. Timo Sirainen. File: smtpd/smtpd_sasl_proto.c. MAIL. Timo Sirainen. File: smtpd/smtpd_sasl_proto.c.
20121003
Bugfix: the postscreen_access_list feature was case-sensitive
in the first character of permit, reject, etc. Reported by
Francis Picabia. File: global/server_acl.c.
20121010
Bugfix (introduced: Postfix 2.5): memory leak in program
initialization. Reported by Coverity. File: tls/tls_misc.c.
Bugfix (introduced: Postfix 2.3): memory leak in the unused
oqmgr program. Reported by Coverity. File: oqmgr/qmgr_message.c.
20121013
Cleanup: to compute the LDAP connection cache lookup key,
join the numeric fields with null, just like string fields.
Viktor Dukhovni. File: global/dict_ldap.c.
20121029
Workaround: strip datalink suffix from IPv6 addresses
returned by the system getaddrinfo() routine. Such suffixes
mess up the default mynetworks value, host name/address
verification and possibly more. This change obsoletes the
20101108 change that removes datalink suffixes in the SMTP
and QMQP servers, but we leave that code alone. File:
util/myaddrinfo.c.

View File

@@ -146,6 +146,8 @@ case "$SYSTEM.$RELEASE" in
;; ;;
FreeBSD.8*) SYSTYPE=FREEBSD8 FreeBSD.8*) SYSTYPE=FREEBSD8
;; ;;
FreeBSD.9*) SYSTYPE=FREEBSD9
;;
OpenBSD.2*) SYSTYPE=OPENBSD2 OpenBSD.2*) SYSTYPE=OPENBSD2
;; ;;
OpenBSD.3*) SYSTYPE=OPENBSD3 OpenBSD.3*) SYSTYPE=OPENBSD3

View File

@@ -930,8 +930,11 @@ static void dict_ldap_conn_find(DICT_LDAP *dict_ldap)
#endif #endif
LDAP_CONN *conn; LDAP_CONN *conn;
/*
* Join key fields with null characters.
*/
#define ADDSTR(vp, s) vstring_memcat((vp), (s), strlen((s))+1) #define ADDSTR(vp, s) vstring_memcat((vp), (s), strlen((s))+1)
#define ADDINT(vp, i) vstring_sprintf_append((vp), "%lu", (unsigned long)(i)) #define ADDINT(vp, i) vstring_sprintf_append((vp), "%lu%c", (unsigned long)(i), 0)
ADDSTR(keybuf, dict_ldap->server_host); ADDSTR(keybuf, dict_ldap->server_host);
ADDINT(keybuf, dict_ldap->server_port); ADDINT(keybuf, dict_ldap->server_port);

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 "20120801" #define MAIL_RELEASE_DATE "20121213"
#define MAIL_VERSION_NUMBER "2.8.12" #define MAIL_VERSION_NUMBER "2.8.13"
#ifdef SNAPSHOT #ifdef SNAPSHOT
# define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE

View File

@@ -749,7 +749,7 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
if (rec_type > 0) if (rec_type > 0)
msg_warn("%s: ignoring out-of-order DSN original recipient <%.200s>", msg_warn("%s: ignoring out-of-order DSN original recipient <%.200s>",
message->queue_id, dsn_orcpt); message->queue_id, dsn_orcpt);
myfree(orig_rcpt); myfree(dsn_orcpt);
} }
if (orig_rcpt != 0) { if (orig_rcpt != 0) {
if (rec_type > 0) if (rec_type > 0)

View File

@@ -99,8 +99,8 @@ ARGV *psc_acl_parse(const char *acl, const char *origin)
char *bp = saved_checks; char *bp = saved_checks;
char *name; char *name;
#define STREQ(x,y) ((*x) == (*y) && strcasecmp((x), (y)) == 0) #define STREQ(x,y) (strcasecmp((x), (y)) == 0)
#define STRNE(x,y) ((*x) != (*y) || strcasecmp((x), (y)) != 0) #define STRNE(x,y) (strcasecmp((x), (y)) != 0)
/* /*
* Nested tables are not allowed. Tables are opened before entering the * Nested tables are not allowed. Tables are opened before entering the

View File

@@ -78,6 +78,7 @@
/* into printable form. The result buffers should be large /* into printable form. The result buffers should be large
/* enough to hold the printable address or port including the /* enough to hold the printable address or port including the
/* null terminator. /* null terminator.
/* This function strips off the IPv6 datalink suffix.
/* /*
/* sockaddr_to_hostname() converts a binary network address /* sockaddr_to_hostname() converts a binary network address
/* into a hostname or service. The result buffer should be /* into a hostname or service. The result buffer should be
@@ -202,6 +203,7 @@
#include <msg.h> #include <msg.h>
#include <inet_proto.h> #include <inet_proto.h>
#include <myaddrinfo.h> #include <myaddrinfo.h>
#include <split_at.h>
/* Application-specific. */ /* Application-specific. */
@@ -607,16 +609,20 @@ int sockaddr_to_hostaddr(const struct sockaddr * sa, SOCKADDR_SIZE salen,
} }
return (0); return (0);
#else #else
int ret;
/* /*
* Native getnameinfo(3) version. * Native getnameinfo(3) version.
*/ */
return (getnameinfo(sa, salen, ret = getnameinfo(sa, salen,
hostaddr ? hostaddr->buf : (char *) 0, hostaddr ? hostaddr->buf : (char *) 0,
hostaddr ? sizeof(hostaddr->buf) : 0, hostaddr ? sizeof(hostaddr->buf) : 0,
portnum ? portnum->buf : (char *) 0, portnum ? portnum->buf : (char *) 0,
portnum ? sizeof(portnum->buf) : 0, portnum ? sizeof(portnum->buf) : 0,
NI_NUMERICHOST | NI_NUMERICSERV)); NI_NUMERICHOST | NI_NUMERICSERV);
if (hostaddr != 0 && ret == 0 && sa->sa_family == AF_INET6)
(void) split_at(hostaddr->buf, '%');
return (ret);
#endif #endif
} }

View File

@@ -25,7 +25,7 @@
*/ */
#if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \ #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \
|| defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \ || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \
|| defined(FREEBSD8) \ || defined(FREEBSD8) || defined(FREEBSD9) \
|| defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \
|| defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \ || defined(OPENBSD2) || defined(OPENBSD3) || defined(OPENBSD4) \
|| defined(OPENBSD5) \ || defined(OPENBSD5) \