mirror of
https://github.com/vdukhovni/postfix
synced 2025-09-01 14:45:32 +00:00
postfix-3.11-20250825
This commit is contained in:
committed by
Viktor Dukhovni
parent
8d1e60ee70
commit
e0168dc932
@@ -29575,3 +29575,21 @@ Apologies for any names omitted.
|
|||||||
smtpd 'disconnect' command counts did not count malformed
|
smtpd 'disconnect' command counts did not count malformed
|
||||||
commands with "bad syntax" and "bad UTF-8 syntax" errors.
|
commands with "bad syntax" and "bad UTF-8 syntax" errors.
|
||||||
File: smtpd/smtpd.c.
|
File: smtpd/smtpd.c.
|
||||||
|
|
||||||
|
20250819
|
||||||
|
|
||||||
|
Bugfix: the 20250717 workaround broke DBM library support
|
||||||
|
which is still needed on Solaris. File: util/dict_dbm.c.
|
||||||
|
|
||||||
|
20250823
|
||||||
|
|
||||||
|
Bugfix (defect introduced: Postfix 3.9, date 20230517):
|
||||||
|
posttls-finger logged a zero port number. Viktor Dukhovni.
|
||||||
|
File: posttls-finger/posttls-finger.c.
|
||||||
|
|
||||||
|
20250825
|
||||||
|
|
||||||
|
Bugfix (defect introduced: 20250626): panic() in dict_register()
|
||||||
|
when dict_open() was called recursively, after dict_proxy_open()
|
||||||
|
changed the name of a dictionary on-the-fly by skipping a
|
||||||
|
proxy: prefix). File: util/dict_open.c.
|
||||||
|
@@ -195,3 +195,4 @@ proto proto COMPATIBILITY_README html
|
|||||||
virtual virtual c
|
virtual virtual c
|
||||||
request Reported by John Doe File tlsproxy tlsproxy c
|
request Reported by John Doe File tlsproxy tlsproxy c
|
||||||
smtpd smtpd c smtpd smtpd_chat c global mail_params h
|
smtpd smtpd c smtpd smtpd_chat c global mail_params h
|
||||||
|
Files Makefile in smtp smtp h smtp smtp_connect c
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
* 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 "20250818"
|
#define MAIL_RELEASE_DATE "20250825"
|
||||||
#define MAIL_VERSION_NUMBER "3.11"
|
#define MAIL_VERSION_NUMBER "3.11"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@@ -1651,7 +1651,7 @@ static void connect_remote(STATE *state, char *dest)
|
|||||||
if (level == TLS_LEV_INVALID
|
if (level == TLS_LEV_INVALID
|
||||||
|| (state->stream = connect_addr(state, addr)) == 0) {
|
|| (state->stream = connect_addr(state, addr)) == 0) {
|
||||||
msg_info("Failed to establish session to %s via %s:%u: %s",
|
msg_info("Failed to establish session to %s via %s:%u: %s",
|
||||||
dest, HNAME(addr), addr->port,
|
dest, HNAME(addr), ntohs(state->port),
|
||||||
vstring_str(state->why->reason));
|
vstring_str(state->why->reason));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@@ -472,7 +472,7 @@ DICT *dict_dbm_open(const char *path, int open_flags, int dict_flags)
|
|||||||
msg_fatal("open database %s: cannot support GDBM", path);
|
msg_fatal("open database %s: cannot support GDBM", path);
|
||||||
if (fstat(dict_dbm->dict.stat_fd, &st) < 0)
|
if (fstat(dict_dbm->dict.stat_fd, &st) < 0)
|
||||||
msg_fatal("dict_dbm_open: fstat: %m");
|
msg_fatal("dict_dbm_open: fstat: %m");
|
||||||
if (open_mode == O_RDONLY)
|
if (open_flags == O_RDONLY)
|
||||||
dict_dbm->dict.mtime = st.st_mtime;
|
dict_dbm->dict.mtime = st.st_mtime;
|
||||||
dict_dbm->dict.owner.uid = st.st_uid;
|
dict_dbm->dict.owner.uid = st.st_uid;
|
||||||
dict_dbm->dict.owner.status = (st.st_uid != 0);
|
dict_dbm->dict.owner.status = (st.st_uid != 0);
|
||||||
|
@@ -496,9 +496,10 @@ DICT *dict_open3(const char *dict_type, const char *dict_name,
|
|||||||
VSTRING *reg_name = vstring_alloc(100);
|
VSTRING *reg_name = vstring_alloc(100);
|
||||||
DICT *dict;
|
DICT *dict;
|
||||||
|
|
||||||
|
/* Workaround for dict_proxy_open() with DICT_FLAG_NO_FILE. */
|
||||||
#define DICT_OPEN3_RETURN(d) do { \
|
#define DICT_OPEN3_RETURN(d) do { \
|
||||||
DICT *_d = (d); \
|
DICT *_d = (d); \
|
||||||
dict_register(vstring_str(reg_name), _d); \
|
dict_register(_d->reg_name? _d->reg_name : vstring_str(reg_name), _d); \
|
||||||
vstring_free(reg_name); \
|
vstring_free(reg_name); \
|
||||||
return (_d); \
|
return (_d); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
Reference in New Issue
Block a user