Postfix version 2.2 patch 10 fixes minor problems, as usual. - "sendmail -t" did not remove the CR from lines ending in CRLF. - Workaround for fatal errors in PCRE maps when an expression in () matches empty text (the PCRE library returns an inappropriate error code). - Fixes for non-security bugs that Coverity found in code that handles impossible error conditions. Beware: Coverity's claim of "17 original defects" in Postfix includes 14 false positives; that is, 14 are bugs in Coverity, not in Postfix. Inflated claims like this may make their own product look good, but they are hamful for the reputation of open source projects. Prereq: "2.2.9" diff -cr /var/tmp/postfix-2.2.9/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.2.9/src/global/mail_version.h Tue Feb 21 14:27:49 2006 --- ./src/global/mail_version.h Wed Apr 5 16:40:28 2006 *************** *** 20,27 **** * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20060221" ! #define MAIL_VERSION_NUMBER "2.2.9" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT --- 20,27 ---- * Patches change the patchlevel and the release date. Snapshots change the * release date only. */ ! #define MAIL_RELEASE_DATE "20060405" ! #define MAIL_VERSION_NUMBER "2.2.10" #define VAR_MAIL_VERSION "mail_version" #ifdef SNAPSHOT diff -cr /var/tmp/postfix-2.2.9/HISTORY ./HISTORY *** /var/tmp/postfix-2.2.9/HISTORY Tue Feb 21 16:24:32 2006 --- ./HISTORY Wed Apr 5 15:15:03 2006 *************** *** 10872,10874 **** --- 10872,10922 ---- Workaround: don't consume in_flow tokens when incoming mail is placed on hold. Back-ported from Postfix 2.3. File: cleanup/cleanup_api.c. + + 20060310 + + Workaround: null-terminate the input after stripping CR, + and before passing the input to the MIME processor. Leandro + Santi. The fix, a rewrite of the MIME processor input + handling, is too much change for a stable release. File: + sendmail/sendmail.c. + + 20060315 + + Workaround: the PCRE library reports an inappropriate error + code (invalid substring) when $number refers to a valid () + expression that matches the null string. This caused fatal + run-time errors. File: dict_pcre.c. + + 20060324 + + Bugfix: mis-placed parenthesis in SMTP before-filter error + test. A filter timeout was mis-reported as lost connection. + Found in code review. File: smtpd/smtpd_proxy.c. + + 20060403 + Bugfix: the pipe-to-command error message was lost when the + command could not be executed. File: global/pipe_command.c. + + 20060404 + + Bugfix in sanity check: after reading a record from the + address verification database, a sanity check did not reject + a record with all-zero time stamp fields. Such records are + never written; the test is there just in case something is + broken, so that Postfix will not blindly march on and create + chaos. The sanity check tested pointer values, instead of + dereferencing the pointers. Found by Coverity. File: + verify/verify.c. + + Bugfix in sanity check: when the maildir delivery routine + opens an output file it looks up the file attributes via + the file handle it just got. There is a sanity check that + detects if the attribute lookup fails, an error that never + happens. The code that handles the impossible error did not + close the output file. This would cause a virtual or local + delivery agent to waste up to 100 file descriptors. But + for that error to happen the system would have to be so + sick that you would have more serious problems than a file + descriptor leak. Found by Coverity. Files: local/maildir.c, + virtual/maildir.c. diff -cr /var/tmp/postfix-2.2.9/html/postconf.5.html ./html/postconf.5.html *** /var/tmp/postfix-2.2.9/html/postconf.5.html Mon Jan 30 20:09:38 2006 --- ./html/postconf.5.html Wed Mar 15 14:20:02 2006 *************** *** 8226,8242 ****