smtpd 'disconnect' command counts did not count malformed
commands with "bad syntax" and "bad UTF-8 syntax" errors.
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.
virtual virtual c
request Reported by John Doe File tlsproxy tlsproxy c
smtpd smtpd c smtpd smtpd_chat c global mail_params h
+ Files Makefile in smtp smtp h smtp smtp_connect c
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20250818"
+#define MAIL_RELEASE_DATE "20250825"
#define MAIL_VERSION_NUMBER "3.11"
#ifdef SNAPSHOT
if (level == TLS_LEV_INVALID
|| (state->stream = connect_addr(state, addr)) == 0) {
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));
continue;
}
msg_fatal("open database %s: cannot support GDBM", path);
if (fstat(dict_dbm->dict.stat_fd, &st) < 0)
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.owner.uid = st.st_uid;
dict_dbm->dict.owner.status = (st.st_uid != 0);
VSTRING *reg_name = vstring_alloc(100);
DICT *dict;
+ /* Workaround for dict_proxy_open() with DICT_FLAG_NO_FILE. */
#define DICT_OPEN3_RETURN(d) do { \
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); \
return (_d); \
} while (0)