]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.1-20151011
authorWietse Venema <wietse@porcupine.org>
Sun, 11 Oct 2015 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Mon, 12 Oct 2015 04:17:43 +0000 (00:17 -0400)
12 files changed:
postfix/HISTORY
postfix/README_FILES/DATABASE_README
postfix/html/DATABASE_README.html
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/proto/DATABASE_README.html
postfix/proto/postconf.proto
postfix/src/cleanup/cleanup_message.c
postfix/src/dns/dns.h
postfix/src/global/mail_version.h
postfix/src/util/dict_pcre.c
postfix/src/util/vstring.c

index 96e0b946fadc57a152daae2eeb1ea6ac0c7c31d3..ec3762e54f391f3fa215f804c6240aa394f70d54 100644 (file)
@@ -21932,10 +21932,10 @@ Apologies for any names omitted.
 
 20150924
 
-       Cleanup (introduced: 20060510): eliminated a harmless
-       warning message "seek error after reading END record: Illegal
-       seek" from the cleanup server after a check_sender_access
-       DISCARD action.  File: cleanup/cleanup.c.
+       Cleanup (introduced: 20060510, exposed 20150912): eliminated
+       a harmless warning message "seek error after reading END
+       record: Illegal seek" from the cleanup server after a
+       check_sender_access DISCARD action.  File: cleanup/cleanup.c.
 
        Bugfix (introduced: 20090216-24): incorrect postmulti error
        message. Reported by Patrik Koetter. Fix by Viktor Dukhovni.
@@ -21954,7 +21954,7 @@ Apologies for any names omitted.
 
        Bugfix (introduced: 20031128): xtext_unquote() did not
        propagate error reports from xtext_unquote_append(), causing
-       the decoder to return partial ouput, instead of rejecting
+       the decoder to return partial output, instead of rejecting
        malformed input. Fix by Krzysztof Wojta.  File: global/xtext.c.
 
 20151003
@@ -21967,3 +21967,25 @@ Apologies for any names omitted.
 
        Cleanup: added missing "negative" unit tests. Files:
        global/xtext.c, global/uxtext.c.
+
+20151004
+
+       Future proofing: use a real VSTRING in the 20150930 header
+       PREPEND fix. File: cleanup/cleanup_message.c.
+
+       Future proofing: make vstring_import() consistent with
+       vstring_alloc(). The alternative would be to remove the
+       function as it is unused and exists only for symmetry with
+       vstring_export(). File: usr/vstring.c.
+
+20151010
+
+       Cleanup: the 20150903 workaround for AIX DNSSEC used the
+       wrong name in #ifdef. File: dns/dns.h.
+
+20151011
+
+       Cleanup: in the PCRE client, turn fatal lookup errors into
+       warnings, and skip the failing pattern as in dict_regexp.c.
+       Also, fixed the error text when running into the matcher's
+       backtracking limit. File: util/dict_pcre.c.
index 0eb2c3aedce7856836351990564fb56b6edc2930..7526e0bc1c98cb586c23facb9d2d9e74c1b08a78 100644 (file)
@@ -212,7 +212,7 @@ To find out what database types your Postfix system supports, use the "p\bpo\bos\bs
         are created with the postmap(1) or postalias(1) command, and private
         databases are maintained by Postfix daemons. The database name as used
         in "hash:table" is the database file name without the ".db" suffix.
-    inline (read-only)
+    i\bin\bnl\bli\bin\bne\be (read-only)
         A non-shared, in-memory lookup table. Example: "inline:{ key=value,
         { key = text with whitespace or comma }}". Key-value pairs are
         separated by whitespace or comma; whitespace after "{" and before "}"
index 25bef163ac86ae67d98329ad1482e1d3763a9501..2d134cd44d549efab20b18a8c944a9fd33326dcc 100644 (file)
@@ -313,7 +313,7 @@ private databases are maintained by Postfix daemons. The database
 name as used in "<a href="DATABASE_README.html#types">hash</a>:table" is the database file name without the
 ".db" suffix.  </dd>
 
-<dt> <b></b>inline (read-only) </dt>
+<dt> <b>inline</b> (read-only) </dt>
 
 <dd> A non-shared, in-memory lookup table. Example: "<a href="DATABASE_README.html#types">inline</a>:{
 <i>key=value</i>, { <i>key = text with whitespace or comma</i> }}".
index 911c03c61eb73df5e46e331b6cd7ef2ce50a654b..4d5fd17f93e3d4cc69e99302c037ef0a2c43bfa8 100644 (file)
@@ -15597,7 +15597,7 @@ for authentication. The available types are listed with the
 (default: empty)</b></DT><DD>
 
 <p>
-Optional lookup table with the SASL login names that own sender
+Optional lookup table with the SASL login names that own the sender
 (MAIL FROM) addresses.
 </p>
 
index a059efcaddd5e71618f888336f937213197f917e..b767f28843b8c8c46614d958cfaf680002247d99 100644 (file)
@@ -10522,7 +10522,7 @@ for authentication. The available types are listed with the
 .PP
 This feature is available in Postfix 2.3 and later.
 .SH smtpd_sender_login_maps (default: empty)
-Optional lookup table with the SASL login names that own sender
+Optional lookup table with the SASL login names that own the sender
 (MAIL FROM) addresses.
 .PP
 Specify zero or more "type:name" lookup tables, separated by
index 0fb0a9e85163abda4b21db61778f8816fe1e0815..c6525ed4c2767d677d38373d0b5e26dfb90a4879 100644 (file)
@@ -313,7 +313,7 @@ private databases are maintained by Postfix daemons. The database
 name as used in "hash:table" is the database file name without the
 ".db" suffix.  </dd>
 
-<dt> <b></b>inline (read-only) </dt>
+<dt> <b>inline</b> (read-only) </dt>
 
 <dd> A non-shared, in-memory lookup table. Example: "inline:{
 <i>key=value</i>, { <i>key = text with whitespace or comma</i> }}".
index e3e519731c13978b329b48a30601aff45ce7de7f..53dbdad06bb06b8464ee0c1d9000330137beb890 100644 (file)
@@ -6386,7 +6386,7 @@ smtpd_sasl_security_options = noanonymous, noplaintext
 %PARAM smtpd_sender_login_maps 
 
 <p>
-Optional lookup table with the SASL login names that own sender
+Optional lookup table with the SASL login names that own the sender
 (MAIL FROM) addresses.
 </p>
 
index d10cb395af0d12c72ce1b18ef5bf155a82891f3a..b945cdc113ad865902b1bd94feb325eb61c16259 100644 (file)
@@ -390,11 +390,18 @@ static const char *cleanup_act(CLEANUP_STATE *state, char *context,
                msg_warn("bad PREPEND header text \"%s\" in %s map -- "
                         "need \"headername: headervalue\"",
                         optional_text, map_class);
-           } else {
-               VSTRING *temp;          /* XXX Impedance mismatch. */
+           }
+
+           /*
+            * By design, cleanup_out_header() may modify content. Play safe
+            * and prepare for future developments.
+            */
+           else {
+               VSTRING *temp;
 
                cleanup_act_log(state, "prepend", context, buf, optional_text);
-               temp = vstring_import(mystrdup(optional_text));
+               temp = vstring_strcpy(vstring_alloc(strlen(optional_text)),
+                                                   optional_text);
                cleanup_out_header(state, temp);
                vstring_free(temp);
            }
index e2b8701ac66b025738d6262d01fdf4e4a91a6cb8..c65ac732edafb3bacabcfb4e89b206e34f46224e 100644 (file)
@@ -57,7 +57,7 @@
 /*
  * Disable DNSSEC at compile-time even if RES_USE_DNSSEC is available
  */
-#ifdef DISABLE_DNSSEC
+#ifdef NO_DNSSEC
 #undef RES_USE_DNSSEC
 #endif
 
index 3d70d32dc29e3fbd278a5753ac12c4abe658b06f..0a84fd808c8479f5153ca141597ea588facc7043 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20151003"
+#define MAIL_RELEASE_DATE      "20151011"
 #define MAIL_VERSION_NUMBER    "3.1"
 
 #ifdef SNAPSHOT
index 57b07fd9fbf2bbe263c21066f49d3c187785d90e..fe388c2a2c20c3015649835c431d646d64f7cf7c 100644 (file)
@@ -223,35 +223,42 @@ static void dict_pcre_exec_error(const char *mapname, int lineno, int errval)
        return;
     case PCRE_ERROR_NULL:
     case PCRE_ERROR_BADOPTION:
-       msg_fatal("pcre map %s, line %d: bad args to re_exec",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: bad args to re_exec",
+                mapname, lineno);
+       return;
     case PCRE_ERROR_BADMAGIC:
     case PCRE_ERROR_UNKNOWN_NODE:
-       msg_fatal("pcre map %s, line %d: corrupt compiled regexp",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: corrupt compiled regexp",
+                mapname, lineno);
+       return;
 #ifdef PCRE_ERROR_NOMEMORY
     case PCRE_ERROR_NOMEMORY:
-       msg_fatal("pcre map %s, line %d: out of memory",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: out of memory",
+                mapname, lineno);
+       return;
 #endif
 #ifdef PCRE_ERROR_MATCHLIMIT
     case PCRE_ERROR_MATCHLIMIT:
-       msg_fatal("pcre map %s, line %d: matched text exceeds buffer limit",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: backtracking limit exceeded",
+                mapname, lineno);
+       return;
 #endif
 #ifdef PCRE_ERROR_BADUTF8
     case PCRE_ERROR_BADUTF8:
-       msg_fatal("pcre map %s, line %d: bad UTF-8 sequence in search string",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: bad UTF-8 sequence in search string",
+                mapname, lineno);
+       return;
 #endif
 #ifdef PCRE_ERROR_BADUTF8_OFFSET
     case PCRE_ERROR_BADUTF8_OFFSET:
-       msg_fatal("pcre map %s, line %d: bad UTF-8 start offset in search string",
-                 mapname, lineno);
+       msg_warn("pcre map %s, line %d: bad UTF-8 start offset in search string",
+                mapname, lineno);
+       return;
 #endif
     default:
-       msg_fatal("pcre map %s, line %d: unknown re_exec error: %d",
-                 mapname, lineno, errval);
+       msg_warn("pcre map %s, line %d: unknown re_exec error: %d",
+                mapname, lineno, errval);
+       return;
     }
 }
 
index 84c92989a18e21386a4185581affdf3148bfce11..acbb848f1b174a7c1775e69f379f2e72d292a13c 100644 (file)
@@ -565,9 +565,14 @@ VSTRING *vstring_import(char *str)
 
     vp = (VSTRING *) mymalloc(sizeof(*vp));
     len = strlen(str);
+    vp->vbuf.flags = 0;
+    vp->vbuf.len = 0;
     vp->vbuf.data = (unsigned char *) str;
     vp->vbuf.len = len + 1;
     VSTRING_AT_OFFSET(vp, len);
+    vp->vbuf.get_ready = vstring_buf_get_ready;
+    vp->vbuf.put_ready = vstring_buf_put_ready;
+    vp->vbuf.space = vstring_buf_space;
     vp->maxlen = 0;
     return (vp);
 }