From: Ian Jackson Date: Wed, 13 Jul 2016 20:44:46 +0000 (+0100) Subject: Rebase patch queue onto upstream 8.39: X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=pcre3.git;a=commitdiff_plain;h=ae7f22768e13f01eb337330332bf18780b8104c0 Rebase patch queue onto upstream 8.39: Adjusted the soname patch Dropped CVE-2016-1283.patch as it is in upstream Process: * Manually unapplied patches with for f in `cat debian/patches/series`; do patch -p1 -R offset_vector[offset] = - md->offset_vector[md->offset_end - number]; - md->offset_vector[offset+1] = (int)(eptr - md->start_subject); -- if (offset_top <= offset) offset_top = offset + 2; -+ -+ /* If this group is at or above the current highwater mark, ensure that -+ any groups between the current high water mark and this group are marked -+ unset and then update the high water mark. */ -+ -+ if (offset >= offset_top) -+ { -+ register int *iptr = md->offset_vector + offset_top; -+ register int *iend = md->offset_vector + offset; -+ while (iptr < iend) *iptr++ = -1; -+ offset_top = offset + 2; -+ } - } - ecode += 1 + IMM2_SIZE; - break; diff --git a/debian/patches/CVE-2016-1283.patch b/debian/patches/CVE-2016-1283.patch deleted file mode 100644 index f05535b..0000000 --- a/debian/patches/CVE-2016-1283.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b7537308b7c758f33c347cb0bec62754c43c271f Mon Sep 17 00:00:00 2001 -From: ph10 -Date: Sat, 27 Feb 2016 17:38:11 +0000 -Subject: [PATCH] Yet another duplicate name bugfix by overestimating the - memory needed (i.e. another hack - PCRE2 has this "properly" fixed). - -git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1636 2f5784b3-3f2a-0410-8824-cb99058d5e15 ---- - pcre_compile.c | 7 ++++++- - testdata/testinput2 | 2 ++ - testdata/testoutput2 | 2 ++ - 4 files changed, 17 insertions(+), 1 deletion(-) - ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -7289,7 +7289,12 @@ for (;; ptr++) - so far in order to get the number. If the name is not found, leave - the value of recno as 0 for a forward reference. */ - -- else -+ /* This patch (removing "else") fixes a problem when a reference is -+ to multiple identically named nested groups from within the nest. -+ Once again, it is not the "proper" fix, and it results in an -+ over-allocation of memory. */ -+ -+ /* else */ - { - ng = cd->named_groups; - for (i = 0; i < cd->names_found; i++, ng++) ---- a/testdata/testinput2 -+++ b/testdata/testinput2 -@@ -4217,4 +4217,6 @@ backtracking verbs. --/ - - /a[[:punct:]b]/BZ - -+/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ -+ - /-- End of testinput2 --/ ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -14574,4 +14574,6 @@ No match - End - ------------------------------------------------------------------ - -+/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ -+ - /-- End of testinput2 --/ diff --git a/debian/patches/Disable_JIT_on_sparc64.patch b/debian/patches/Disable_JIT_on_sparc64.patch index 0a6de34..7583e4d 100644 --- a/debian/patches/Disable_JIT_on_sparc64.patch +++ b/debian/patches/Disable_JIT_on_sparc64.patch @@ -1,13 +1,15 @@ -Description: Disable JIT on sparc64 as it needs explicit porting - The test suite currently fails on sparc64 when the JIT is enabled - as the JIT has not been ported to sparc64 yet. Thus, disable JIT - until it has been explicitly ported to sparc64. - . +From: Matthew Vernon +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: Disable_JIT_on_sparc64 -Index: pcre3/sljit/sljitConfigInternal.h -=================================================================== ---- pcre3.orig/sljit/sljitConfigInternal.h 2015-12-22 13:30:50.000000000 +0000 -+++ pcre3/sljit/sljitConfigInternal.h 2015-12-22 13:33:30.000000000 +0000 +--- + sljit/sljitConfigInternal.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/sljit/sljitConfigInternal.h b/sljit/sljitConfigInternal.h +index b2bc80a..2d031f5 100644 +--- a/sljit/sljitConfigInternal.h ++++ b/sljit/sljitConfigInternal.h @@ -145,7 +145,11 @@ #elif defined(__mips64) #define SLJIT_CONFIG_MIPS_64 1 diff --git a/debian/patches/Fix-bad-compilation-for-patterns-like-1-1-with-forwa.patch b/debian/patches/Fix-bad-compilation-for-patterns-like-1-1-with-forwa.patch deleted file mode 100644 index ed5b5c1..0000000 --- a/debian/patches/Fix-bad-compilation-for-patterns-like-1-1-with-forwa.patch +++ /dev/null @@ -1,145 +0,0 @@ -Description: CVE-2015-2326: heap buffer overflow in pcre_compile2() - Fix bad compilation for patterns like /((?+1)(\1))/ with - forward reference subroutine and recursive back reference within the same - group. -Origin: upstream, http://vcs.pcre.org/pcre?view=revision&revision=1529 -Bug: http://bugs.exim.org/show_bug.cgi?id=1592 -Bug-Debian: https://bugs.debian.org/783285 -Forwarded: not-needed -Last-Update: 2015-09-10 -Applied-Upstream: 8.36 - ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -8027,6 +8027,7 @@ int length; - unsigned int orig_bracount; - unsigned int max_bracount; - branch_chain bc; -+size_t save_hwm_offset; - - /* If set, call the external function that checks for stack availability. */ - -@@ -8044,6 +8045,8 @@ bc.current_branch = code; - firstchar = reqchar = 0; - firstcharflags = reqcharflags = REQ_UNSET; - -+save_hwm_offset = cd->hwm - cd->start_workspace; -+ - /* Accumulate the length for use in the pre-compile phase. Start with the - length of the BRA and KET and any extra bytes that are required at the - beginning. We accumulate in a local variable to save frequent testing of -@@ -8246,7 +8249,7 @@ for (;;) - { - *code = OP_END; - adjust_recurse(start_bracket, 1 + LINK_SIZE, -- (options & PCRE_UTF8) != 0, cd, cd->hwm - cd->start_workspace); -+ (options & PCRE_UTF8) != 0, cd, save_hwm_offset); - memmove(start_bracket + 1 + LINK_SIZE, start_bracket, - IN_UCHARS(code - start_bracket)); - *start_bracket = OP_ONCE; ---- a/testdata/testinput11 -+++ b/testdata/testinput11 -@@ -134,4 +134,6 @@ is required for these tests. --/ - - /(((a\2)|(a*)\g<-1>))*a?/B - -+/((?+1)(\1))/B -+ - /-- End of testinput11 --/ ---- a/testdata/testinput2 -+++ b/testdata/testinput2 -@@ -4066,4 +4066,6 @@ backtracking verbs. --/ - - "((?2){0,1999}())?" - -+/((?+1)(\1))/BZ -+ - /-- End of testinput2 --/ ---- a/testdata/testoutput11-16 -+++ b/testdata/testoutput11-16 -@@ -733,4 +733,19 @@ Memory allocation (code space): 14 - 41 End - ------------------------------------------------------------------ - -+/((?+1)(\1))/B -+------------------------------------------------------------------ -+ 0 20 Bra -+ 2 16 Once -+ 4 12 CBra 1 -+ 7 9 Recurse -+ 9 5 CBra 2 -+ 12 \1 -+ 14 5 Ket -+ 16 12 Ket -+ 18 16 Ket -+ 20 20 Ket -+ 22 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput11-32 -+++ b/testdata/testoutput11-32 -@@ -733,4 +733,19 @@ Memory allocation (code space): 28 - 41 End - ------------------------------------------------------------------ - -+/((?+1)(\1))/B -+------------------------------------------------------------------ -+ 0 20 Bra -+ 2 16 Once -+ 4 12 CBra 1 -+ 7 9 Recurse -+ 9 5 CBra 2 -+ 12 \1 -+ 14 5 Ket -+ 16 12 Ket -+ 18 16 Ket -+ 20 20 Ket -+ 22 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput11-8 -+++ b/testdata/testoutput11-8 -@@ -733,4 +733,19 @@ Memory allocation (code space): 10 - 60 End - ------------------------------------------------------------------ - -+/((?+1)(\1))/B -+------------------------------------------------------------------ -+ 0 31 Bra -+ 3 25 Once -+ 6 19 CBra 1 -+ 11 14 Recurse -+ 14 8 CBra 2 -+ 19 \1 -+ 22 8 Ket -+ 25 19 Ket -+ 28 25 Ket -+ 31 31 Ket -+ 34 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -14175,4 +14175,19 @@ Failed: parentheses are too deeply neste - - "((?2){0,1999}())?" - -+/((?+1)(\1))/BZ -+------------------------------------------------------------------ -+ Bra -+ Once -+ CBra 1 -+ Recurse -+ CBra 2 -+ \1 -+ Ket -+ Ket -+ Ket -+ Ket -+ End -+------------------------------------------------------------------ -+ - /-- End of testinput2 --/ diff --git a/debian/patches/Fix-bad-compile-for-groups-like-2-0-1999.patch b/debian/patches/Fix-bad-compile-for-groups-like-2-0-1999.patch deleted file mode 100644 index f019be6..0000000 --- a/debian/patches/Fix-bad-compile-for-groups-like-2-0-1999.patch +++ /dev/null @@ -1,209 +0,0 @@ -Description: CVE-2015-2325: heap buffer overflow in compile_branch() - Fix bad compile for groups like "((?2){0,1999}())?". -Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1528 -Bug: http://bugs.exim.org/show_bug.cgi?id=1591 -Bug-Debian: https://bugs.debian.org/781795 -Forwarded: not-needed -Last-Update: 2015-09-10 -Applied-Upstream: 8.37 - ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -3933,14 +3933,14 @@ Arguments: - adjust the amount by which the group is to be moved - utf TRUE in UTF-8 / UTF-16 / UTF-32 mode - cd contains pointers to tables etc. -- save_hwm the hwm forward reference pointer at the start of the group -+ save_hwm_offset the hwm forward reference offset at the start of the group - - Returns: nothing - */ - - static void - adjust_recurse(pcre_uchar *group, int adjust, BOOL utf, compile_data *cd, -- pcre_uchar *save_hwm) -+ size_t save_hwm_offset) - { - pcre_uchar *ptr = group; - -@@ -3952,7 +3952,8 @@ while ((ptr = (pcre_uchar *)find_recurse - /* See if this recursion is on the forward reference list. If so, adjust the - reference. */ - -- for (hc = save_hwm; hc < cd->hwm; hc += LINK_SIZE) -+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; -+ hc += LINK_SIZE) - { - offset = (int)GET(hc, 0); - if (cd->start_code + offset == ptr + 1) -@@ -4397,7 +4398,7 @@ const pcre_uchar *tempptr; - const pcre_uchar *nestptr = NULL; - pcre_uchar *previous = NULL; - pcre_uchar *previous_callout = NULL; --pcre_uchar *save_hwm = NULL; -+size_t save_hwm_offset = 0; - pcre_uint8 classbits[32]; - - /* We can fish out the UTF-8 setting once and for all into a BOOL, but we -@@ -5909,7 +5910,7 @@ for (;; ptr++) - if (repeat_max <= 1) /* Covers 0, 1, and unlimited */ - { - *code = OP_END; -- adjust_recurse(previous, 1, utf, cd, save_hwm); -+ adjust_recurse(previous, 1, utf, cd, save_hwm_offset); - memmove(previous + 1, previous, IN_UCHARS(len)); - code++; - if (repeat_max == 0) -@@ -5933,7 +5934,7 @@ for (;; ptr++) - { - int offset; - *code = OP_END; -- adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm); -+ adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm_offset); - memmove(previous + 2 + LINK_SIZE, previous, IN_UCHARS(len)); - code += 2 + LINK_SIZE; - *previous++ = OP_BRAZERO + repeat_type; -@@ -5996,26 +5997,25 @@ for (;; ptr++) - for (i = 1; i < repeat_min; i++) - { - pcre_uchar *hc; -- pcre_uchar *this_hwm = cd->hwm; -+ size_t this_hwm_offset = cd->hwm - cd->start_workspace; - memcpy(code, previous, IN_UCHARS(len)); - - while (cd->hwm > cd->start_workspace + cd->workspace_size - -- WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm)) -+ WORK_SIZE_SAFETY_MARGIN - -+ (this_hwm_offset - save_hwm_offset)) - { -- int save_offset = save_hwm - cd->start_workspace; -- int this_offset = this_hwm - cd->start_workspace; - *errorcodeptr = expand_workspace(cd); - if (*errorcodeptr != 0) goto FAILED; -- save_hwm = (pcre_uchar *)cd->start_workspace + save_offset; -- this_hwm = (pcre_uchar *)cd->start_workspace + this_offset; - } - -- for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) -+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; -+ hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset; -+ hc += LINK_SIZE) - { - PUT(cd->hwm, 0, GET(hc, 0) + len); - cd->hwm += LINK_SIZE; - } -- save_hwm = this_hwm; -+ save_hwm_offset = this_hwm_offset; - code += len; - } - } -@@ -6060,7 +6060,7 @@ for (;; ptr++) - else for (i = repeat_max - 1; i >= 0; i--) - { - pcre_uchar *hc; -- pcre_uchar *this_hwm = cd->hwm; -+ size_t this_hwm_offset = cd->hwm - cd->start_workspace; - - *code++ = OP_BRAZERO + repeat_type; - -@@ -6082,22 +6082,21 @@ for (;; ptr++) - copying them. */ - - while (cd->hwm > cd->start_workspace + cd->workspace_size - -- WORK_SIZE_SAFETY_MARGIN - (this_hwm - save_hwm)) -+ WORK_SIZE_SAFETY_MARGIN - -+ (this_hwm_offset - save_hwm_offset)) - { -- int save_offset = save_hwm - cd->start_workspace; -- int this_offset = this_hwm - cd->start_workspace; - *errorcodeptr = expand_workspace(cd); - if (*errorcodeptr != 0) goto FAILED; -- save_hwm = (pcre_uchar *)cd->start_workspace + save_offset; -- this_hwm = (pcre_uchar *)cd->start_workspace + this_offset; - } - -- for (hc = save_hwm; hc < this_hwm; hc += LINK_SIZE) -+ for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; -+ hc < (pcre_uchar *)cd->start_workspace + this_hwm_offset; -+ hc += LINK_SIZE) - { - PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1)); - cd->hwm += LINK_SIZE; - } -- save_hwm = this_hwm; -+ save_hwm_offset = this_hwm_offset; - code += len; - } - -@@ -6193,7 +6192,7 @@ for (;; ptr++) - { - int nlen = (int)(code - bracode); - *code = OP_END; -- adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm); -+ adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); - memmove(bracode + 1 + LINK_SIZE, bracode, IN_UCHARS(nlen)); - code += 1 + LINK_SIZE; - nlen += 1 + LINK_SIZE; -@@ -6327,7 +6326,7 @@ for (;; ptr++) - else - { - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6376,7 +6375,7 @@ for (;; ptr++) - - default: - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6408,7 +6407,7 @@ for (;; ptr++) - newoptions = options; - skipbytes = 0; - bravalue = OP_CBRA; -- save_hwm = cd->hwm; -+ save_hwm_offset = cd->hwm - cd->start_workspace; - reset_bracount = FALSE; - - /* First deal with various "verbs" that can be introduced by '*'. */ -@@ -7701,7 +7700,7 @@ for (;; ptr++) - const pcre_uchar *p; - pcre_uint32 cf; - -- save_hwm = cd->hwm; /* Normally this is set when '(' is read */ -+ save_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ - terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? - CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; - -@@ -8247,7 +8246,7 @@ for (;;) - { - *code = OP_END; - adjust_recurse(start_bracket, 1 + LINK_SIZE, -- (options & PCRE_UTF8) != 0, cd, cd->hwm); -+ (options & PCRE_UTF8) != 0, cd, cd->hwm - cd->start_workspace); - memmove(start_bracket + 1 + LINK_SIZE, start_bracket, - IN_UCHARS(code - start_bracket)); - *start_bracket = OP_ONCE; ---- a/testdata/testinput2 -+++ b/testdata/testinput2 -@@ -4064,4 +4064,6 @@ backtracking verbs. --/ - - /(((((a)))))/Q - -+"((?2){0,1999}())?" -+ - /-- End of testinput2 --/ ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -14173,4 +14173,6 @@ Failed: parentheses are too deeply neste - /(((((a)))))/Q - ** Missing 0 or 1 after /Q - -+"((?2){0,1999}())?" -+ - /-- End of testinput2 --/ diff --git a/debian/patches/Fix-buffer-overflow-for-named-recursive-back-referen.patch b/debian/patches/Fix-buffer-overflow-for-named-recursive-back-referen.patch deleted file mode 100644 index 3c4132b..0000000 --- a/debian/patches/Fix-buffer-overflow-for-named-recursive-back-referen.patch +++ /dev/null @@ -1,59 +0,0 @@ -Description: CVE-2015-3210: heap buffer overflow in pcre_compile2() / compile_regex() - Fix buffer overflow for named recursive back reference when - the name is duplicated. -Origin: upstream, http://vcs.pcre.org/pcre?view=revision&revision=1558 -Bug: https://bugs.exim.org/show_bug.cgi?id=1636 -Bug-Debian: https://bugs.debian.org/787433 -Forwarded: not-needed -Last-Update: 2015-09-10 -Applied-Upstream: not-yet (8.38) - ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -7082,14 +7082,26 @@ for (;; ptr++) - number. If the name is not found, set the value to 0 for a forward - reference. */ - -+ recno = 0; - ng = cd->named_groups; - for (i = 0; i < cd->names_found; i++, ng++) - { - if (namelen == ng->length && - STRNCMP_UC_UC(name, ng->name, namelen) == 0) -- break; -+ { -+ open_capitem *oc; -+ recno = ng->number; -+ if (is_recurse) break; -+ for (oc = cd->open_caps; oc != NULL; oc = oc->next) -+ { -+ if (oc->number == recno) -+ { -+ oc->flag = TRUE; -+ break; -+ } -+ } -+ } - } -- recno = (i < cd->names_found)? ng->number : 0; - - /* Count named back references. */ - ---- a/testdata/testinput2 -+++ b/testdata/testinput2 -@@ -4068,4 +4068,6 @@ backtracking verbs. --/ - - /((?+1)(\1))/BZ - -+"(?J)(?'d'(?'d'\g{d}))" -+ - /-- End of testinput2 --/ ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -14190,4 +14190,6 @@ Failed: parentheses are too deeply neste - End - ------------------------------------------------------------------ - -+"(?J)(?'d'(?'d'\g{d}))" -+ - /-- End of testinput2 --/ diff --git a/debian/patches/Fix-compile-time-loop-for-recursive-reference-within.patch b/debian/patches/Fix-compile-time-loop-for-recursive-reference-within.patch deleted file mode 100644 index a38be27..0000000 --- a/debian/patches/Fix-compile-time-loop-for-recursive-reference-within.patch +++ /dev/null @@ -1,86 +0,0 @@ -Description: PCRE Call Stack Overflow Vulnerability - Fix compile-time loop for recursive reference within a group - with an indefinite repeat. -Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1498 -Bug: https://bugs.exim.org/show_bug.cgi?id=1515 -Forwarded: not-needed -Last-Update: 2015-09-10 -Applied-Upstream: 8.36 - ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -2367,6 +2367,7 @@ for (code = first_significant_code(code - if (c == OP_RECURSE) - { - const pcre_uchar *scode = cd->start_code + GET(code, 1); -+ const pcre_uchar *endgroup = scode; - BOOL empty_branch; - - /* Test for forward reference or uncompleted reference. This is disabled -@@ -2381,24 +2382,20 @@ for (code = first_significant_code(code - if (GET(scode, 1) == 0) return TRUE; /* Unclosed */ - } - -- /* If we are scanning a completed pattern, there are no forward references -- and all groups are complete. We need to detect whether this is a recursive -- call, as otherwise there will be an infinite loop. If it is a recursion, -- just skip over it. Simple recursions are easily detected. For mutual -- recursions we keep a chain on the stack. */ -+ /* If the reference is to a completed group, we need to detect whether this -+ is a recursive call, as otherwise there will be an infinite loop. If it is -+ a recursion, just skip over it. Simple recursions are easily detected. For -+ mutual recursions we keep a chain on the stack. */ - -+ do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); -+ if (code >= scode && code <= endgroup) continue; /* Simple recursion */ - else -- { -+ { - recurse_check *r = recurses; -- const pcre_uchar *endgroup = scode; -- -- do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); -- if (code >= scode && code <= endgroup) continue; /* Simple recursion */ -- - for (r = recurses; r != NULL; r = r->prev) - if (r->group == scode) break; - if (r != NULL) continue; /* Mutual recursion */ -- } -+ } - - /* Completed reference; scan the referenced group, remembering it on the - stack chain to detect mutual recursions. */ ---- a/testdata/testinput1 -+++ b/testdata/testinput1 -@@ -4937,6 +4937,12 @@ however, we need the complication for Pe - - /((?(R1)a+|(?1)b))/ - aaaabcde -+ -+/((?(R)a|(?1)))*/ -+ aaa -+ -+/((?(R)a|(?1)))+/ -+ aaa - - /a(*:any - name)/K ---- a/testdata/testoutput1 -+++ b/testdata/testoutput1 -@@ -8234,6 +8234,16 @@ MK: M - aaaabcde - 0: aaaab - 1: aaaab -+ -+/((?(R)a|(?1)))*/ -+ aaa -+ 0: aaa -+ 1: a -+ -+/((?(R)a|(?1)))+/ -+ aaa -+ 0: aaa -+ 1: a - - /a(*:any - name)/K diff --git a/debian/patches/Fix-compiler-crash-misbehaviour-for-zero-repeated-gr.patch b/debian/patches/Fix-compiler-crash-misbehaviour-for-zero-repeated-gr.patch deleted file mode 100644 index a8c15f3..0000000 --- a/debian/patches/Fix-compiler-crash-misbehaviour-for-zero-repeated-gr.patch +++ /dev/null @@ -1,175 +0,0 @@ -Description: PCRE Library Stack Overflow Vulnerability - Fix compiler crash/misbehaviour for zero-repeated groups that - include a recursive back reference. -Origin: backport, http://vcs.pcre.org/pcre?view=revision&revision=1495 -Bug: https://bugs.exim.org/show_bug.cgi?id=1503 -Forwarded: not-needed -Last-Update: 2015-09-10 -Applied-Upstream: 8.36 ---- ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -8241,12 +8241,16 @@ for (;;) - - /* If it was a capturing subpattern, check to see if it contained any - recursive back references. If so, we must wrap it in atomic brackets. -- In any event, remove the block from the chain. */ -+ Because we are moving code along, we must ensure that any pending recursive -+ references are updated. In any event, remove the block from the chain. */ - - if (capnumber > 0) - { - if (cd->open_caps->flag) - { -+ *code = OP_END; -+ adjust_recurse(start_bracket, 1 + LINK_SIZE, -+ (options & PCRE_UTF8) != 0, cd, cd->hwm); - memmove(start_bracket + 1 + LINK_SIZE, start_bracket, - IN_UCHARS(code - start_bracket)); - *start_bracket = OP_ONCE; ---- a/testdata/testinput11 -+++ b/testdata/testinput11 -@@ -132,4 +132,6 @@ is required for these tests. --/ - - /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B - -+/(((a\2)|(a*)\g<-1>))*a?/B -+ - /-- End of testinput11 --/ ---- a/testdata/testinput2 -+++ b/testdata/testinput2 -@@ -4035,6 +4035,8 @@ backtracking verbs. --/ - - /(?(R&6yh)abc)/ - -+/(((a\2)|(a*)\g<-1>))*a?/BZ -+ - /-- Test the ugly "start or end of word" compatibility syntax --/ - - /[[:<:]]red[[:>:]]/BZ ---- a/testdata/testoutput11-16 -+++ b/testdata/testoutput11-16 -@@ -709,4 +709,28 @@ Memory allocation (code space): 14 - 62 End - ------------------------------------------------------------------ - -+/(((a\2)|(a*)\g<-1>))*a?/B -+------------------------------------------------------------------ -+ 0 39 Bra -+ 2 Brazero -+ 3 32 SCBra 1 -+ 6 27 Once -+ 8 12 CBra 2 -+ 11 7 CBra 3 -+ 14 a -+ 16 \2 -+ 18 7 Ket -+ 20 11 Alt -+ 22 5 CBra 4 -+ 25 a* -+ 27 5 Ket -+ 29 22 Recurse -+ 31 23 Ket -+ 33 27 Ket -+ 35 32 KetRmax -+ 37 a?+ -+ 39 39 Ket -+ 41 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput11-32 -+++ b/testdata/testoutput11-32 -@@ -709,4 +709,28 @@ Memory allocation (code space): 28 - 62 End - ------------------------------------------------------------------ - -+/(((a\2)|(a*)\g<-1>))*a?/B -+------------------------------------------------------------------ -+ 0 39 Bra -+ 2 Brazero -+ 3 32 SCBra 1 -+ 6 27 Once -+ 8 12 CBra 2 -+ 11 7 CBra 3 -+ 14 a -+ 16 \2 -+ 18 7 Ket -+ 20 11 Alt -+ 22 5 CBra 4 -+ 25 a* -+ 27 5 Ket -+ 29 22 Recurse -+ 31 23 Ket -+ 33 27 Ket -+ 35 32 KetRmax -+ 37 a?+ -+ 39 39 Ket -+ 41 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput11-8 -+++ b/testdata/testoutput11-8 -@@ -709,4 +709,28 @@ Memory allocation (code space): 10 - 76 End - ------------------------------------------------------------------ - -+/(((a\2)|(a*)\g<-1>))*a?/B -+------------------------------------------------------------------ -+ 0 57 Bra -+ 3 Brazero -+ 4 48 SCBra 1 -+ 9 40 Once -+ 12 18 CBra 2 -+ 17 10 CBra 3 -+ 22 a -+ 24 \2 -+ 27 10 Ket -+ 30 16 Alt -+ 33 7 CBra 4 -+ 38 a* -+ 40 7 Ket -+ 43 33 Recurse -+ 46 34 Ket -+ 49 40 Ket -+ 52 48 KetRmax -+ 55 a?+ -+ 57 57 Ket -+ 60 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -14093,6 +14093,30 @@ Failed: malformed number or name after ( - /(?(R&6yh)abc)/ - Failed: group name must start with a non-digit at offset 5 - -+/(((a\2)|(a*)\g<-1>))*a?/BZ -+------------------------------------------------------------------ -+ Bra -+ Brazero -+ SCBra 1 -+ Once -+ CBra 2 -+ CBra 3 -+ a -+ \2 -+ Ket -+ Alt -+ CBra 4 -+ a* -+ Ket -+ Recurse -+ Ket -+ Ket -+ KetRmax -+ a?+ -+ Ket -+ End -+------------------------------------------------------------------ -+ - /-- Test the ugly "start or end of word" compatibility syntax --/ - - /[[:<:]]red[[:>:]]/BZ diff --git a/debian/patches/Fix-silly-quantifier-size-check.patch b/debian/patches/Fix-silly-quantifier-size-check.patch deleted file mode 100644 index 88c3b95..0000000 --- a/debian/patches/Fix-silly-quantifier-size-check.patch +++ /dev/null @@ -1,100 +0,0 @@ -From: Philip Hazel -Date: Mon, 21 Apr 2014 16:11:50 +0000 -Subject: Fix silly quantifier size check - -The tests for quantifiers being too big (greater than 65535) were being -applied after reading the number, and stupidly assuming that integer -overflow would give a negative number. The tests are now applied as the -numbers are read. - -Bug: http://bugs.exim.org/show_bug.cgi?id=1463 -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=751828 -Origin: upstream, part of http://vcs.pcre.org/viewvc?view=revision&sortby=date&revision=1472 -Applied-upstream: 8.36 ---- - pcre_compile.c | 35 ++++++++++++++++------------------- - testdata/testoutput2 | 6 +++--- - 2 files changed, 19 insertions(+), 22 deletions(-) - -diff --git a/pcre_compile.c b/pcre_compile.c -index 8a5b723..ae0027b 100644 ---- a/pcre_compile.c -+++ b/pcre_compile.c -@@ -1583,30 +1583,30 @@ read_repeat_counts(const pcre_uchar *p, int *minp, int *maxp, int *errorcodeptr) - int min = 0; - int max = -1; - --/* Read the minimum value and do a paranoid check: a negative value indicates --an integer overflow. */ -- --while (IS_DIGIT(*p)) min = min * 10 + (int)(*p++ - CHAR_0); --if (min < 0 || min > 65535) -+while (IS_DIGIT(*p)) - { -- *errorcodeptr = ERR5; -- return p; -- } -- --/* Read the maximum value if there is one, and again do a paranoid on its size. --Also, max must not be less than min. */ -+ min = min * 10 + (int)(*p++ - CHAR_0); -+ if (min > 65535) -+ { -+ *errorcodeptr = ERR5; -+ return p; -+ } -+ } - - if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else - { - if (*(++p) != CHAR_RIGHT_CURLY_BRACKET) - { - max = 0; -- while(IS_DIGIT(*p)) max = max * 10 + (int)(*p++ - CHAR_0); -- if (max < 0 || max > 65535) -+ while(IS_DIGIT(*p)) - { -- *errorcodeptr = ERR5; -- return p; -- } -+ max = max * 10 + (int)(*p++ - CHAR_0); -+ if (max > 65535) -+ { -+ *errorcodeptr = ERR5; -+ return p; -+ } -+ } - if (max < min) - { - *errorcodeptr = ERR4; -@@ -1615,9 +1615,6 @@ if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else - } - } - --/* Fill in the required variables, and pass back the pointer to the terminating --'}'. */ -- - *minp = min; - *maxp = max; - return p; -diff --git a/testdata/testoutput2 b/testdata/testoutput2 -index b6da7df..cfb446e 100644 ---- a/testdata/testoutput2 -+++ b/testdata/testoutput2 -@@ -5821,13 +5821,13 @@ No match - No match - - /a{11111111111111111111}/I --Failed: number too big in {} quantifier at offset 22 -+Failed: number too big in {} quantifier at offset 8 - - /(){64294967295}/I --Failed: number too big in {} quantifier at offset 14 -+Failed: number too big in {} quantifier at offset 9 - - /(){2,4294967295}/I --Failed: number too big in {} quantifier at offset 15 -+Failed: number too big in {} quantifier at offset 11 - - "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I - Capturing subpattern count = 1 diff --git a/debian/patches/PCRE6_compatible_API.patch b/debian/patches/PCRE6_compatible_API.patch index f13a763..e2d1d83 100644 --- a/debian/patches/PCRE6_compatible_API.patch +++ b/debian/patches/PCRE6_compatible_API.patch @@ -1,9 +1,18 @@ From: Mark Baker -Description: Include old interface to RE::Init() for PCRE 6.x compatibility +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: PCRE6_compatible_API +--- + pcrecpp.cc | 6 ++++++ + pcrecpp.h | 2 ++ + pcretest.c | 2 +- + 3 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/pcrecpp.cc b/pcrecpp.cc +index d09c9ab..728b074 100644 --- a/pcrecpp.cc +++ b/pcrecpp.cc -@@ -80,6 +80,12 @@ +@@ -80,6 +80,12 @@ static const string empty_string; // If the user doesn't ask for any options, we just use this one static RE_Options default_options; @@ -16,9 +25,11 @@ Description: Include old interface to RE::Init() for PCRE 6.x compatibility void RE::Init(const string& pat, const RE_Options* options) { pattern_ = pat; if (options == NULL) { +diff --git a/pcrecpp.h b/pcrecpp.h +index 3e594b0..a520057 100644 --- a/pcrecpp.h +++ b/pcrecpp.h -@@ -658,6 +658,8 @@ +@@ -658,6 +658,8 @@ class PCRECPP_EXP_DEFN RE { private: void Init(const string& pattern, const RE_Options* options); @@ -27,9 +38,11 @@ Description: Include old interface to RE::Init() for PCRE 6.x compatibility void Cleanup(); // Match against "text", filling in "vec" (up to "vecsize" * 2/3) with +diff --git a/pcretest.c b/pcretest.c +index 78ef517..f42f0a3 100644 --- a/pcretest.c +++ b/pcretest.c -@@ -2976,7 +2976,7 @@ +@@ -2984,7 +2984,7 @@ int main(int argc, char **argv) { FILE *infile = stdin; const char *version; diff --git a/debian/patches/apply-upstream-revision-1631-closes-8159 b/debian/patches/apply-upstream-revision-1631-closes-8159 deleted file mode 100644 index a11143a..0000000 --- a/debian/patches/apply-upstream-revision-1631-closes-8159 +++ /dev/null @@ -1,141 +0,0 @@ -Description: Apply upstream revision 1631 (Closes: #815921) - This is an upstream patch to fix workspace overflow for (*ACCEPT) with - deeply nested parentheses -Author: Matthew Vernon -X-Dgit-Generated: 2:8.38-2 50aa7778a6bb8b81a9e03e8744f797362183772e - ---- - ---- pcre3-8.38.orig/pcreposix.c -+++ pcre3-8.38/pcreposix.c -@@ -6,7 +6,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -173,7 +173,8 @@ static const int eint[] = { - REG_BADPAT, /* group name must start with a non-digit */ - /* 85 */ - REG_BADPAT, /* parentheses too deeply nested (stack check) */ -- REG_BADPAT /* missing digits in \x{} or \o{} */ -+ REG_BADPAT, /* missing digits in \x{} or \o{} */ -+ REG_BADPAT /* pattern too complicated */ - }; - - /* Table of texts corresponding to POSIX error codes */ ---- pcre3-8.38.orig/pcre_compile.c -+++ pcre3-8.38/pcre_compile.c -@@ -6,7 +6,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -560,6 +560,7 @@ static const char error_texts[] = - /* 85 */ - "parentheses are too deeply nested (stack check)\0" - "digits missing in \\x{} or \\o{}\0" -+ "regular expression is too complicated\0" - ; - - /* Table to identify digits and hex digits. This is used when compiling -@@ -4591,7 +4592,8 @@ for (;; ptr++) - if (code > cd->start_workspace + cd->workspace_size - - WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */ - { -- *errorcodeptr = ERR52; -+ *errorcodeptr = (code >= cd->start_workspace + cd->workspace_size)? -+ ERR52 : ERR87; - goto FAILED; - } - -@@ -6604,8 +6606,21 @@ for (;; ptr++) - cd->had_accept = TRUE; - for (oc = cd->open_caps; oc != NULL; oc = oc->next) - { -- *code++ = OP_CLOSE; -- PUT2INC(code, 0, oc->number); -+ if (lengthptr != NULL) -+ { -+#ifdef COMPILE_PCRE8 -+ *lengthptr += 1 + IMM2_SIZE; -+#elif defined COMPILE_PCRE16 -+ *lengthptr += 2 + IMM2_SIZE; -+#elif defined COMPILE_PCRE32 -+ *lengthptr += 4 + IMM2_SIZE; -+#endif -+ } -+ else -+ { -+ *code++ = OP_CLOSE; -+ PUT2INC(code, 0, oc->number); -+ } - } - setverb = *code++ = - (cd->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; ---- pcre3-8.38.orig/pcre_internal.h -+++ pcre3-8.38/pcre_internal.h -@@ -7,7 +7,7 @@ - and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel -- Copyright (c) 1997-2014 University of Cambridge -+ Copyright (c) 1997-2016 University of Cambridge - - ----------------------------------------------------------------------------- - Redistribution and use in source and binary forms, with or without -@@ -2289,7 +2289,7 @@ enum { ERR0, ERR1, ERR2, ERR3, ERR4, - ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, - ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69, - ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79, -- ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT }; -+ ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERR87, ERRCOUNT }; - - /* JIT compiling modes. The function list is indexed by them. */ - ---- pcre3-8.38.orig/testdata/testoutput11-8 -+++ pcre3-8.38/testdata/testoutput11-8 -@@ -765,4 +765,7 @@ Memory allocation (code space): 10 - 38 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: missing ) at offset 509 -+ - /-- End of testinput11 --/ ---- pcre3-8.38.orig/testdata/testoutput11-16 -+++ pcre3-8.38/testdata/testoutput11-16 -@@ -765,4 +765,7 @@ Memory allocation (code space): 14 - 25 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: regular expression is too complicated at offset 490 -+ - /-- End of testinput11 --/ ---- pcre3-8.38.orig/testdata/testinput11 -+++ pcre3-8.38/testdata/testinput11 -@@ -138,4 +138,6 @@ is required for these tests. --/ - - /.((?2)(?R)\1)()/B - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+ - /-- End of testinput11 --/ ---- pcre3-8.38.orig/testdata/testoutput11-32 -+++ pcre3-8.38/testdata/testoutput11-32 -@@ -765,4 +765,7 @@ Memory allocation (code space): 28 - 25 End - ------------------------------------------------------------------ - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: missing ) at offset 509 -+ - /-- End of testinput11 --/ diff --git a/debian/patches/cve-2014-8964.patch b/debian/patches/cve-2014-8964.patch deleted file mode 100644 index 64786a0..0000000 --- a/debian/patches/cve-2014-8964.patch +++ /dev/null @@ -1,23 +0,0 @@ -Description: CVE-2014-8964, heap buffer overflow - Heap buffer overflow if an assertion with a zero minimum repeat is used as - the condition in a conditional group. -Origin: upstream http://bugs.exim.org/show_bug.cgi?id=1546 -Bug: http://bugs.exim.org/show_bug.cgi?id=1546 -Applied-Upstream: Yes, after 8.36 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/pcre_exec.c -+++ b/pcre_exec.c -@@ -1404,8 +1404,11 @@ - condition = TRUE; - - /* Advance ecode past the assertion to the start of the first branch, -- but adjust it so that the general choosing code below works. */ -+ but adjust it so that the general choosing code below works. If the -+ assertion has a quantifier that allows zero repeats we must skip over -+ the BRAZERO. This is a lunatic thing to do, but somebody did! */ - -+ if (*ecode == OP_BRAZERO) ecode++; - ecode += GET(ecode, 1); - while (*ecode == OP_ALT) ecode += GET(ecode, 1); - ecode += 1 + LINK_SIZE - PRIV(OP_lengths)[condcode]; diff --git a/debian/patches/fix_find_fixedlength.patch b/debian/patches/fix_find_fixedlength.patch deleted file mode 100644 index 84fbb02..0000000 --- a/debian/patches/fix_find_fixedlength.patch +++ /dev/null @@ -1,21 +0,0 @@ -Description: Fix buffer overflow for forward reference within backward assertion with excess closing parenthesis. - Strictly, this is a backport, but the patch is trivial. -Origin: upstream http://vcs.pcre.org/pcre?view=revision&revision=1571 -Bug: https://bugs.exim.org/show_bug.cgi?id=1651 -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790000 -Last-Update: 2015-06-26 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: b/pcre_compile.c -=================================================================== ---- a/pcre_compile.c 2015-05-26 08:24:55.000000000 +0100 -+++ b/pcre_compile.c 2015-06-26 08:00:13.000000000 +0100 -@@ -9265,7 +9265,7 @@ - exceptional ones forgo this. We scan the pattern to check that they are fixed - length, and set their lengths. */ - --if (cd->check_lookbehind) -+if (errorcode == 0 && cd->check_lookbehind) - { - pcre_uchar *cc = (pcre_uchar *)codestart; - diff --git a/debian/patches/no_jit_x32_powerpcspe.patch b/debian/patches/no_jit_x32_powerpcspe.patch index d499096..af4fcdc 100644 --- a/debian/patches/no_jit_x32_powerpcspe.patch +++ b/debian/patches/no_jit_x32_powerpcspe.patch @@ -1,10 +1,15 @@ -Description: Disable JIT on x32, needs explicit porting to ILP32 amd64, FPU-less PowerPC. -Author: Thorsten Glaser , Roland Stigge +From: Matthew Vernon +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: no_jit_x32_powerpcspe -Index: pcre3/sljit/sljitConfigInternal.h -=================================================================== ---- pcre3.orig/sljit/sljitConfigInternal.h 2015-07-31 12:00:43.000000000 +0100 -+++ pcre3/sljit/sljitConfigInternal.h 2015-12-22 13:30:50.000000000 +0000 +--- + sljit/sljitConfigInternal.h | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/sljit/sljitConfigInternal.h b/sljit/sljitConfigInternal.h +index 9275b14..b2bc80a 100644 +--- a/sljit/sljitConfigInternal.h ++++ b/sljit/sljitConfigInternal.h @@ -117,7 +117,11 @@ #if defined(__i386__) || defined(__i386) #define SLJIT_CONFIG_X86_32 1 diff --git a/debian/patches/pcre_info.patch b/debian/patches/pcre_info.patch index 5a8657b..f913353 100644 --- a/debian/patches/pcre_info.patch +++ b/debian/patches/pcre_info.patch @@ -1,11 +1,19 @@ From: Mark Baker -Description: Restore obsolete pcre_info() API for compatiblity +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: pcre_info -Index: pcre3/Makefile.am -=================================================================== ---- pcre3.orig/Makefile.am 2014-04-04 14:39:50.000000000 +0100 -+++ pcre3/Makefile.am 2015-12-22 12:37:59.000000000 +0000 -@@ -233,6 +233,7 @@ +--- + Makefile.am | 3 ++- + Makefile.in | 79 ++++++++++++++++++++++++++++------------------------- + pcre_info.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 134 insertions(+), 38 deletions(-) + create mode 100644 pcre_info.c + +diff --git a/Makefile.am b/Makefile.am +index 22b6947..59c564a 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -233,6 +233,7 @@ libpcre_la_SOURCES = \ pcre_fullinfo.c \ pcre_get.c \ pcre_globals.c \ @@ -13,7 +21,7 @@ Index: pcre3/Makefile.am pcre_internal.h \ pcre_jit_compile.c \ pcre_maketables.c \ -@@ -647,7 +648,7 @@ +@@ -648,7 +649,7 @@ test: check ; # nice DLL for Windows use". (It is used by the pcre.dll target.) DLL_OBJS= pcre_byte_order.o pcre_compile.o pcre_config.o \ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \ @@ -22,11 +30,11 @@ Index: pcre3/Makefile.am pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \ pcre_study.o pcre_tables.o pcre_ucd.o \ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \ -Index: pcre3/Makefile.in -=================================================================== ---- pcre3.orig/Makefile.in 2015-11-23 12:37:21.000000000 +0000 -+++ pcre3/Makefile.in 2015-12-22 12:37:59.000000000 +0000 -@@ -218,11 +218,11 @@ +diff --git a/Makefile.in b/Makefile.in +index 6d03912..22c1ae9 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -218,11 +218,11 @@ LTLIBRARIES = $(lib_LTLIBRARIES) libpcre_la_DEPENDENCIES = am__libpcre_la_SOURCES_DIST = pcre_byte_order.c pcre_compile.c \ pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c \ @@ -43,7 +51,7 @@ Index: pcre3/Makefile.in @WITH_PCRE8_TRUE@am_libpcre_la_OBJECTS = \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_byte_order.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_compile.lo \ -@@ -232,6 +232,7 @@ +@@ -232,6 +232,7 @@ am__libpcre_la_SOURCES_DIST = pcre_byte_order.c pcre_compile.c \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_fullinfo.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_get.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_globals.lo \ @@ -51,7 +59,7 @@ Index: pcre3/Makefile.in @WITH_PCRE8_TRUE@ libpcre_la-pcre_jit_compile.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_maketables.lo \ @WITH_PCRE8_TRUE@ libpcre_la-pcre_newline.lo \ -@@ -251,7 +252,7 @@ +@@ -251,7 +252,7 @@ libpcre_la_OBJECTS = $(am_libpcre_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent @@ -60,7 +68,7 @@ Index: pcre3/Makefile.in libpcre_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre_la_CFLAGS) \ $(CFLAGS) $(libpcre_la_LDFLAGS) $(LDFLAGS) -o $@ -@@ -449,11 +450,11 @@ +@@ -449,11 +450,11 @@ am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; @@ -74,7 +82,7 @@ Index: pcre3/Makefile.in DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles -@@ -467,7 +468,7 @@ +@@ -467,7 +468,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; @@ -83,7 +91,7 @@ Index: pcre3/Makefile.in CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -@@ -475,7 +476,7 @@ +@@ -475,7 +476,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; @@ -92,7 +100,7 @@ Index: pcre3/Makefile.in CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ -@@ -485,7 +486,7 @@ +@@ -485,7 +486,7 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; @@ -101,7 +109,7 @@ Index: pcre3/Makefile.in CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ -@@ -493,7 +494,7 @@ +@@ -493,7 +494,7 @@ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; @@ -110,7 +118,7 @@ Index: pcre3/Makefile.in SOURCES = $(libpcre_la_SOURCES) $(nodist_libpcre_la_SOURCES) \ $(libpcre16_la_SOURCES) $(nodist_libpcre16_la_SOURCES) \ $(libpcre32_la_SOURCES) $(nodist_libpcre32_la_SOURCES) \ -@@ -832,9 +833,6 @@ +@@ -832,9 +833,6 @@ PCRE_MAJOR = @PCRE_MAJOR@ PCRE_MINOR = @PCRE_MINOR@ PCRE_PRERELEASE = @PCRE_PRERELEASE@ PCRE_STATIC_CFLAG = @PCRE_STATIC_CFLAG@ @@ -120,7 +128,7 @@ Index: pcre3/Makefile.in PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ -@@ -844,8 +842,6 @@ +@@ -844,8 +842,6 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SHTOOL = @SHTOOL@ STRIP = @STRIP@ @@ -129,7 +137,7 @@ Index: pcre3/Makefile.in VERSION = @VERSION@ VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ -@@ -988,7 +984,7 @@ +@@ -988,7 +984,7 @@ dist_noinst_DATA = $(pcrecpp_html) # The Libtool libraries to install. We'll add to this later. lib_LTLIBRARIES = $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_20) $(am__append_22) @@ -138,7 +146,7 @@ Index: pcre3/Makefile.in dist_noinst_SCRIPTS = RunTest $(am__append_39) # Additional files to delete on 'make clean' and 'make maintainer-clean'. -@@ -1093,6 +1089,7 @@ +@@ -1093,6 +1089,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE8_TRUE@ pcre_fullinfo.c \ @WITH_PCRE8_TRUE@ pcre_get.c \ @WITH_PCRE8_TRUE@ pcre_globals.c \ @@ -146,7 +154,7 @@ Index: pcre3/Makefile.in @WITH_PCRE8_TRUE@ pcre_internal.h \ @WITH_PCRE8_TRUE@ pcre_jit_compile.c \ @WITH_PCRE8_TRUE@ pcre_maketables.c \ -@@ -1110,7 +1107,7 @@ +@@ -1110,7 +1107,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE8_TRUE@libpcre_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ @WITH_PCRE8_TRUE@ $(am__append_7) $(am__append_10) @@ -155,7 +163,7 @@ Index: pcre3/Makefile.in @WITH_PCRE8_TRUE@nodist_libpcre_la_SOURCES = \ @WITH_PCRE8_TRUE@ pcre_chartables.c -@@ -1141,7 +1138,7 @@ +@@ -1141,7 +1138,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE16_TRUE@libpcre16_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE16_TRUE@ $(AM_CFLAGS) $(am__append_8) \ @WITH_PCRE16_TRUE@ $(am__append_11) @@ -164,7 +172,7 @@ Index: pcre3/Makefile.in @WITH_PCRE16_TRUE@nodist_libpcre16_la_SOURCES = \ @WITH_PCRE16_TRUE@ pcre_chartables.c -@@ -1172,7 +1169,7 @@ +@@ -1172,7 +1169,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE32_TRUE@libpcre32_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE32_TRUE@ $(AM_CFLAGS) $(am__append_9) \ @WITH_PCRE32_TRUE@ $(am__append_12) @@ -173,7 +181,7 @@ Index: pcre3/Makefile.in @WITH_PCRE32_TRUE@nodist_libpcre32_la_SOURCES = \ @WITH_PCRE32_TRUE@ pcre_chartables.c -@@ -1227,7 +1224,7 @@ +@@ -1227,7 +1224,7 @@ pcretest_LDADD = $(LIBREADLINE) $(am__append_30) $(am__append_32) \ # nice DLL for Windows use". (It is used by the pcre.dll target.) DLL_OBJS = pcre_byte_order.o pcre_compile.o pcre_config.o \ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \ @@ -182,7 +190,7 @@ Index: pcre3/Makefile.in pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \ pcre_study.o pcre_tables.o pcre_ucd.o \ pcre_valid_utf8.o pcre_version.o pcre_chartables.o \ -@@ -1313,8 +1310,8 @@ +@@ -1313,8 +1310,8 @@ pcrecpp_man = doc/pcrecpp.3 @WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION) @WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info @WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage @@ -193,7 +201,7 @@ Index: pcre3/Makefile.in @WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V)) @WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY)) @WITH_GCOV_TRUE@coverage_quiet_0 = --quiet -@@ -1364,7 +1361,7 @@ +@@ -1364,7 +1361,7 @@ config.h: stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h @@ -202,7 +210,7 @@ Index: pcre3/Makefile.in ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ -@@ -1425,19 +1422,19 @@ +@@ -1425,19 +1422,19 @@ clean-libLTLIBRARIES: rm -f $${locs}; \ } @@ -227,7 +235,7 @@ Index: pcre3/Makefile.in $(AM_V_CCLD)$(libpcreposix_la_LINK) $(am_libpcreposix_la_rpath) $(libpcreposix_la_OBJECTS) $(libpcreposix_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) -@@ -1498,31 +1495,31 @@ +@@ -1498,31 +1495,31 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list @@ -266,7 +274,7 @@ Index: pcre3/Makefile.in @rm -f pcretest$(EXEEXT) $(AM_V_CCLD)$(pcretest_LINK) $(pcretest_OBJECTS) $(pcretest_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) -@@ -1623,6 +1620,7 @@ +@@ -1623,6 +1620,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_fullinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_get.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_globals.Plo@am__quote@ @@ -274,7 +282,7 @@ Index: pcre3/Makefile.in @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_jit_compile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_maketables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpcre_la-pcre_newline.Plo@am__quote@ -@@ -1726,6 +1724,13 @@ +@@ -1726,6 +1724,13 @@ libpcre_la-pcre_globals.lo: pcre_globals.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -c -o libpcre_la-pcre_globals.lo `test -f 'pcre_globals.c' || echo '$(srcdir)/'`pcre_globals.c @@ -288,10 +296,11 @@ Index: pcre3/Makefile.in libpcre_la-pcre_jit_compile.lo: pcre_jit_compile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre_la_CFLAGS) $(CFLAGS) -MT libpcre_la-pcre_jit_compile.lo -MD -MP -MF $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo -c -o libpcre_la-pcre_jit_compile.lo `test -f 'pcre_jit_compile.c' || echo '$(srcdir)/'`pcre_jit_compile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpcre_la-pcre_jit_compile.Tpo $(DEPDIR)/libpcre_la-pcre_jit_compile.Plo -Index: pcre3/pcre_info.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ pcre3/pcre_info.c 2015-12-22 12:37:59.000000000 +0000 +diff --git a/pcre_info.c b/pcre_info.c +new file mode 100644 +index 0000000..17dafea +--- /dev/null ++++ b/pcre_info.c @@ -0,0 +1,90 @@ +/************************************************* +* Perl-Compatible Regular Expressions * diff --git a/debian/patches/pcregrep.1-patch b/debian/patches/pcregrep.1-patch index 4012369..4ecab6f 100644 --- a/debian/patches/pcregrep.1-patch +++ b/debian/patches/pcregrep.1-patch @@ -1,11 +1,15 @@ From: Mark Baker -Description: Mention zpcregrep wrapper script in pcregrep man page. +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: pcregrep.1-patch +--- + doc/pcregrep.1 | 4 ++++ + 1 file changed, 4 insertions(+) -Index: pcre3/doc/pcregrep.1 -=================================================================== ---- pcre3.orig/doc/pcregrep.1 2014-04-04 14:37:38.000000000 +0100 -+++ pcre3/doc/pcregrep.1 2015-12-22 12:39:07.000000000 +0000 +diff --git a/doc/pcregrep.1 b/doc/pcregrep.1 +index 9886675..07b8f57 100644 +--- a/doc/pcregrep.1 ++++ b/doc/pcregrep.1 @@ -3,6 +3,7 @@ pcregrep - a grep with Perl-compatible regular expressions. .SH SYNOPSIS @@ -14,7 +18,7 @@ Index: pcre3/doc/pcregrep.1 . .SH DESCRIPTION .rs -@@ -87,6 +88,9 @@ +@@ -87,6 +88,9 @@ the matching substrings are being shown. If the \fBLC_ALL\fP or \fBLC_CTYPE\fP environment variable is set, \fBpcregrep\fP uses the value to set a locale when calling the PCRE library. The \fB--locale\fP option can be used to override this. diff --git a/debian/patches/pcreposix.patch b/debian/patches/pcreposix.patch index 587e8eb..c2bbacb 100644 --- a/debian/patches/pcreposix.patch +++ b/debian/patches/pcreposix.patch @@ -1,11 +1,16 @@ From: Mark Baker -Description: Fix PCRE posix interface otherwise libc regexes are used (Bug 22525) +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: pcreposix -Index: pcre-8.30/pcreposix.h -=================================================================== ---- pcre-8.30.orig/pcreposix.h 2011-12-28 17:57:51.000000000 +0100 -+++ pcre-8.30/pcreposix.h 2012-03-23 11:05:02.223026534 +0100 -@@ -133,14 +133,19 @@ +--- + pcreposix.h | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/pcreposix.h b/pcreposix.h +index c77c0b0..4527f78 100644 +--- a/pcreposix.h ++++ b/pcreposix.h +@@ -133,14 +133,19 @@ file. */ /* The functions */ diff --git a/debian/patches/series b/debian/patches/series index b766780..bdf74b5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,5 +5,3 @@ pcregrep.1-patch soname.patch no_jit_x32_powerpcspe.patch Disable_JIT_on_sparc64.patch -apply-upstream-revision-1631-closes-8159 -CVE-2016-1283.patch diff --git a/debian/patches/soname.patch b/debian/patches/soname.patch index cbdae2a..fb9a11d 100644 --- a/debian/patches/soname.patch +++ b/debian/patches/soname.patch @@ -1,21 +1,28 @@ From: Mark Baker -Description: Change soname to what debian use -Index: pcre3/configure.ac +Date: Wed, 13 Jul 2016 21:20:13 +0100 +Subject: soname + =================================================================== ---- pcre3.orig/configure.ac 2015-12-22 13:27:15.000000000 +0000 -+++ pcre3/configure.ac 2015-12-22 13:28:37.000000000 +0000 -@@ -17,10 +17,10 @@ +--- + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 3cefaf1..6077ad5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -17,10 +17,10 @@ m4_define(pcre_date, [2016-06-14]) # 50 lines of this file. Please update that if the variables above are moved. # Libtool shared library interface versions (current:revision:age) --m4_define(libpcre_version, [3:6:2]) --m4_define(libpcre16_version, [2:6:2]) --m4_define(libpcre32_version, [0:6:0]) --m4_define(libpcreposix_version, [0:3:0]) -+m4_define(libpcre_version, [16:2:13]) -+m4_define(libpcre16_version, [16:2:13]) -+m4_define(libpcre32_version, [16:2:13]) -+m4_define(libpcreposix_version, [16:2:13]) +-m4_define(libpcre_version, [3:7:2]) +-m4_define(libpcre16_version, [2:7:2]) +-m4_define(libpcre32_version, [0:7:0]) +-m4_define(libpcreposix_version, [0:4:0]) ++m4_define(libpcre_version, [16:3:13]) ++m4_define(libpcre16_version, [16:3:13]) ++m4_define(libpcre32_version, [16:3:13]) ++m4_define(libpcreposix_version, [16:3:13]) m4_define(libpcrecpp_version, [0:1:0]) AC_PREREQ(2.57)