8.41 RC1 bump
This commit is contained in:
parent
a82fb773cc
commit
cc814f7bdb
.gitignorepcre-8.40-Check-character-256-for-isprint-in-pcretest.patchpcre-8.40-Correct-fix-for-pcre2grep-multiline-with-only-matchi.patchpcre-8.40-Fix-DFA-match-handling-of-possessive-repeated-charac.patchpcre-8.40-Fix-Unicode-property-crash-for-32-bit-characters-gre.patchpcre-8.40-Fix-a-missing-else-in-the-JIT-compiler-reported-by-i.patchpcre-8.40-Fix-character-type-detection-when-32-bit-and-UCP-are.patchpcre-8.40-Fix-recognition-of-style-comment-between-quantifier-.patchpcre-8.40-Fix-typo-leading-to-possible-buffer-overflow-in-pcre.patchpcre-8.40-Make-pcretest-check-size-of-O-argument.patchpcre-8.40-Minor-doc-update.patchpcre-8.40-Silent-a-GCC-7-warning-about-too-small-buffer-for-pr.patchpcre-8.41-RC1-JIT-compiler-update.patchpcre.specsources
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,3 +28,4 @@ pcre-8.10.tar.bz2
|
||||
/pcre-8.39.tar.bz2
|
||||
/pcre-8.40-RC1.tar.bz2
|
||||
/pcre-8.40.tar.bz2
|
||||
/pcre-8.41-RC1.tar.bz2
|
||||
|
@ -1,54 +0,0 @@
|
||||
From 686660568dde71f9a7f8791cbb8a77702b3ea820 Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Wed, 22 Feb 2017 17:37:47 +0000
|
||||
Subject: [PATCH] Check character < 256 for isprint() in pcretest.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1685 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
|
||||
diff --git a/pcretest.c b/pcretest.c
|
||||
index 5b73a91..797f99c 100644
|
||||
--- a/pcretest.c
|
||||
+++ b/pcretest.c
|
||||
@@ -177,7 +177,7 @@ that differ in their output from isprint() even in the "C" locale. */
|
||||
#define PRINTABLE(c) ((c) >= 32 && (c) < 127)
|
||||
#endif
|
||||
|
||||
-#define PRINTOK(c) (locale_set? isprint(c) : PRINTABLE(c))
|
||||
+#define PRINTOK(c) (locale_set? (((c) < 256) && isprint(c)) : PRINTABLE(c))
|
||||
|
||||
/* Posix support is disabled in 16 or 32 bit only mode. */
|
||||
#if !defined SUPPORT_PCRE8 && !defined NOPOSIX
|
||||
diff --git a/testdata/testinput15 b/testdata/testinput15
|
||||
index 83e2677..c065105 100644
|
||||
--- a/testdata/testinput15
|
||||
+++ b/testdata/testinput15
|
||||
@@ -363,4 +363,7 @@ correctly, but that messes up comparisons). --/
|
||||
|
||||
/abc/89
|
||||
|
||||
+//8+L
|
||||
+ \xf1\xad\xae\xae
|
||||
+
|
||||
/-- End of testinput15 --/
|
||||
diff --git a/testdata/testoutput15 b/testdata/testoutput15
|
||||
index bad2807..e4e123c 100644
|
||||
--- a/testdata/testoutput15
|
||||
+++ b/testdata/testoutput15
|
||||
@@ -1136,4 +1136,9 @@ Failed: setting UTF is disabled by the application at offset 0
|
||||
/abc/89
|
||||
Failed: setting UTF is disabled by the application at offset 0
|
||||
|
||||
+//8+L
|
||||
+ \xf1\xad\xae\xae
|
||||
+ 0:
|
||||
+ 0+ \x{6dbae}
|
||||
+
|
||||
/-- End of testinput15 --/
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,73 +0,0 @@
|
||||
From dcee2708b5d37437fda9dbd07ccac6c9badd6892 Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Fri, 10 Feb 2017 17:47:34 +0000
|
||||
Subject: [PATCH] Correct fix for pcre2grep multiline with --only-matching.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This is series of two patches ported to 8.40:
|
||||
|
||||
commit 5be027b624bc866702808abadfe5f99360414086
|
||||
Author: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Fri Feb 10 17:47:34 2017 +0000
|
||||
|
||||
Correct fix for pcre2grep multiline with --only-matching.
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1678 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
commit 8b0fdf16e57ce9a653a0a03c39f6cc061e8122e8
|
||||
Author: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Sun Feb 12 13:28:11 2017 +0000
|
||||
|
||||
Fix bug in most recent fix for multiline pcre2grep.
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1679 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pcregrep.c | 21 ++++++++++++++++-----
|
||||
1 file changed, 16 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/pcregrep.c b/pcregrep.c
|
||||
index fd2a676..3cd70ee 100644
|
||||
--- a/pcregrep.c
|
||||
+++ b/pcregrep.c
|
||||
@@ -1804,11 +1804,6 @@ while (ptr < endptr)
|
||||
if (line_buffered) fflush(stdout);
|
||||
rc = 0; /* Had some success */
|
||||
|
||||
- /* If the current match ended past the end of the line (only possible
|
||||
- in multiline mode), we are done with this line. */
|
||||
-
|
||||
- if ((unsigned int)offsets[1] > linelength) goto END_ONE_MATCH;
|
||||
-
|
||||
startoffset = offsets[1]; /* Restart after the match */
|
||||
if (startoffset <= oldstartoffset)
|
||||
{
|
||||
@@ -1818,6 +1813,22 @@ while (ptr < endptr)
|
||||
if (utf8)
|
||||
while ((matchptr[startoffset] & 0xc0) == 0x80) startoffset++;
|
||||
}
|
||||
+
|
||||
+ /* If the current match ended past the end of the line (only possible
|
||||
+ in multiline mode), we must move on to the line in which it did end
|
||||
+ before searching for more matches. */
|
||||
+
|
||||
+ while (startoffset > (int)linelength)
|
||||
+ {
|
||||
+ matchptr = ptr += linelength + endlinelength;
|
||||
+ filepos += (int)(linelength + endlinelength);
|
||||
+ linenumber++;
|
||||
+ startoffset -= (int)(linelength + endlinelength);
|
||||
+ t = end_of_line(ptr, endptr, &endlinelength);
|
||||
+ linelength = t - ptr - endlinelength;
|
||||
+ length = (size_t)(endptr - ptr);
|
||||
+ }
|
||||
+
|
||||
goto ONLY_MATCHING_RESTART;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,67 +0,0 @@
|
||||
From 881b9580da401953f2a94b42cb9cc275b4719341 Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Wed, 22 Mar 2017 15:17:45 +0000
|
||||
Subject: [PATCH] Fix DFA match handling of possessive repeated character class
|
||||
(Bugzilla 2086).
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1689 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
---
|
||||
pcre_dfa_exec.c | 4 ++--
|
||||
testdata/testinput8 | 3 +++
|
||||
testdata/testoutput8 | 4 ++++
|
||||
|
||||
diff --git a/pcre_dfa_exec.c b/pcre_dfa_exec.c
|
||||
index 170ce6a..bc09ced 100644
|
||||
--- a/pcre_dfa_exec.c
|
||||
+++ b/pcre_dfa_exec.c
|
||||
@@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language (but see
|
||||
below for why this module is different).
|
||||
|
||||
Written by Philip Hazel
|
||||
- Copyright (c) 1997-2014 University of Cambridge
|
||||
+ Copyright (c) 1997-2017 University of Cambridge
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@@ -2625,7 +2625,7 @@ for (;;)
|
||||
if (isinclass)
|
||||
{
|
||||
int max = (int)GET2(ecode, 1 + IMM2_SIZE);
|
||||
- if (*ecode == OP_CRPOSRANGE)
|
||||
+ if (*ecode == OP_CRPOSRANGE && count >= (int)GET2(ecode, 1))
|
||||
{
|
||||
active_count--; /* Remove non-match possibility */
|
||||
next_active_state--;
|
||||
diff --git a/testdata/testinput8 b/testdata/testinput8
|
||||
index 7f8fa82..e931410 100644
|
||||
--- a/testdata/testinput8
|
||||
+++ b/testdata/testinput8
|
||||
@@ -4845,4 +4845,7 @@
|
||||
aaa\D
|
||||
a\D
|
||||
|
||||
+/(02-)?[0-9]{3}-[0-9]{3}/
|
||||
+ 02-123-123
|
||||
+
|
||||
/-- End of testinput8 --/
|
||||
diff --git a/testdata/testoutput8 b/testdata/testoutput8
|
||||
index 17b667a..4984376 100644
|
||||
--- a/testdata/testoutput8
|
||||
+++ b/testdata/testoutput8
|
||||
@@ -7801,4 +7801,8 @@ No match
|
||||
** Show all captures ignored after DFA matching
|
||||
0: a
|
||||
|
||||
+/(02-)?[0-9]{3}-[0-9]{3}/
|
||||
+ 02-123-123
|
||||
+ 0: 02-123-123
|
||||
+
|
||||
/-- End of testinput8 --/
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,72 +0,0 @@
|
||||
From 8037f71d03b3cd8919248f38448a0a2d3715c18c Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Fri, 24 Feb 2017 17:30:30 +0000
|
||||
Subject: [PATCH] Fix Unicode property crash for 32-bit characters greater than
|
||||
0x10ffff.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1688 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
|
||||
diff --git a/pcre_internal.h b/pcre_internal.h
|
||||
index 2923b29..154d3f6 100644
|
||||
--- a/pcre_internal.h
|
||||
+++ b/pcre_internal.h
|
||||
@@ -2772,6 +2772,9 @@ extern const pcre_uint8 PRIV(ucd_stage1)[];
|
||||
extern const pcre_uint16 PRIV(ucd_stage2)[];
|
||||
extern const pcre_uint32 PRIV(ucp_gentype)[];
|
||||
extern const pcre_uint32 PRIV(ucp_gbtable)[];
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+extern const ucd_record PRIV(dummy_ucd_record)[];
|
||||
+#endif
|
||||
#ifdef SUPPORT_JIT
|
||||
extern const int PRIV(ucp_typerange)[];
|
||||
#endif
|
||||
@@ -2780,9 +2783,15 @@ extern const int PRIV(ucp_typerange)[];
|
||||
/* UCD access macros */
|
||||
|
||||
#define UCD_BLOCK_SIZE 128
|
||||
-#define GET_UCD(ch) (PRIV(ucd_records) + \
|
||||
+#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \
|
||||
PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \
|
||||
UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE])
|
||||
+
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+#define GET_UCD(ch) ((ch > 0x10ffff)? PRIV(dummy_ucd_record) : REAL_GET_UCD(ch))
|
||||
+#else
|
||||
+#define GET_UCD(ch) REAL_GET_UCD(ch)
|
||||
+#endif
|
||||
|
||||
#define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype
|
||||
#define UCD_SCRIPT(ch) GET_UCD(ch)->script
|
||||
diff --git a/pcre_ucd.c b/pcre_ucd.c
|
||||
index 69c4fd4..f22f826 100644
|
||||
--- a/pcre_ucd.c
|
||||
+++ b/pcre_ucd.c
|
||||
@@ -38,6 +38,20 @@ const pcre_uint16 PRIV(ucd_stage2)[] = {0};
|
||||
const pcre_uint32 PRIV(ucd_caseless_sets)[] = {0};
|
||||
#else
|
||||
|
||||
+/* If the 32-bit library is run in non-32-bit mode, character values
|
||||
+greater than 0x10ffff may be encountered. For these we set up a
|
||||
+special record. */
|
||||
+
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+const ucd_record PRIV(dummy_ucd_record)[] = {{
|
||||
+ ucp_Common, /* script */
|
||||
+ ucp_Cn, /* type unassigned */
|
||||
+ ucp_gbOther, /* grapheme break property */
|
||||
+ 0, /* case set */
|
||||
+ 0, /* other case */
|
||||
+ }};
|
||||
+#endif
|
||||
+
|
||||
/* When recompiling tables with a new Unicode version, please check the
|
||||
types in this structure definition from pcre_internal.h (the actual
|
||||
field names will be different):
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,64 +0,0 @@
|
||||
From ad21e1941bfe5d5c8d8474028139343f884bf28c Mon Sep 17 00:00:00 2001
|
||||
From: zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Tue, 14 Feb 2017 08:48:18 +0000
|
||||
Subject: [PATCH] Fix a missing else in the JIT compiler reported by
|
||||
'idaifish'.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Petr Pisar: Ported to 8.40:
|
||||
|
||||
commit 7ddfbe9d0b9f43402f8043e940172a318cc407c6
|
||||
Author: zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Tue Feb 14 08:48:18 2017 +0000
|
||||
|
||||
Fix a missing else in the JIT compiler reported by 'idaifish'.
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1680 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pcre_jit_compile.c | 2 +-
|
||||
testdata/testinput12 | 2 ++
|
||||
testdata/testoutput12 | 2 ++
|
||||
3 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pcre_jit_compile.c b/pcre_jit_compile.c
|
||||
index 46ce6c6..a6e2ad5 100644
|
||||
--- a/pcre_jit_compile.c
|
||||
+++ b/pcre_jit_compile.c
|
||||
@@ -8111,7 +8111,7 @@ if (opcode == OP_COND || opcode == OP_SCOND)
|
||||
|
||||
if (*matchingpath == OP_FAIL)
|
||||
stacksize = 0;
|
||||
- if (*matchingpath == OP_RREF)
|
||||
+ else if (*matchingpath == OP_RREF)
|
||||
{
|
||||
stacksize = GET2(matchingpath, 1);
|
||||
if (common->currententry == NULL)
|
||||
diff --git a/testdata/testinput12 b/testdata/testinput12
|
||||
index 944be69..89ed456 100644
|
||||
--- a/testdata/testinput12
|
||||
+++ b/testdata/testinput12
|
||||
@@ -104,4 +104,6 @@ and a couple of things that are different with JIT. --/
|
||||
/(.|.)*?bx/
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax
|
||||
|
||||
+/((?(?!))x)(?'name')(?1)/S++
|
||||
+
|
||||
/-- End of testinput12 --/
|
||||
diff --git a/testdata/testoutput12 b/testdata/testoutput12
|
||||
index 8791108..7632c4e 100644
|
||||
--- a/testdata/testoutput12
|
||||
+++ b/testdata/testoutput12
|
||||
@@ -201,4 +201,6 @@ No match, mark = m (JIT)
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax
|
||||
Error -8 (match limit exceeded)
|
||||
|
||||
+/((?(?!))x)(?'name')(?1)/S++
|
||||
+
|
||||
/-- End of testinput12 --/
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,78 +0,0 @@
|
||||
From 3b8f1ab07fb1744c57f5d04c872e81d8d669de87 Mon Sep 17 00:00:00 2001
|
||||
From: zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Fri, 31 Mar 2017 05:41:17 +0000
|
||||
Subject: [PATCH] Fix character type detection when 32-bit and UCP are enabled
|
||||
but UTF is not in JIT.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1693 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pcre_jit_compile.c | 31 +++++++++++++++++++++++++++++++
|
||||
1 file changed, 31 insertions(+)
|
||||
|
||||
diff --git a/pcre_jit_compile.c b/pcre_jit_compile.c
|
||||
index 1a8ce1e..c9db7ee 100644
|
||||
--- a/pcre_jit_compile.c
|
||||
+++ b/pcre_jit_compile.c
|
||||
@@ -559,6 +559,8 @@ the start pointers when the end of the capturing group has not yet reached. */
|
||||
|
||||
#define READ_CHAR_MAX 0x7fffffff
|
||||
|
||||
+#define INVALID_UTF_CHAR 888
|
||||
+
|
||||
static pcre_uchar *bracketend(pcre_uchar *cc)
|
||||
{
|
||||
SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NOT) || (*cc >= OP_ONCE && *cc <= OP_SCOND));
|
||||
@@ -3277,10 +3279,30 @@ static void do_getucd(compiler_common *common)
|
||||
/* Search the UCD record for the character comes in TMP1.
|
||||
Returns chartype in TMP1 and UCD offset in TMP2. */
|
||||
DEFINE_COMPILER;
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+struct sljit_jump *jump;
|
||||
+#endif
|
||||
+
|
||||
+#if defined SLJIT_DEBUG && SLJIT_DEBUG
|
||||
+/* dummy_ucd_record */
|
||||
+const ucd_record *record = GET_UCD(INVALID_UTF_CHAR);
|
||||
+SLJIT_ASSERT(record->script == ucp_Common && record->chartype == ucp_Cn && record->gbprop == ucp_gbOther);
|
||||
+SLJIT_ASSERT(record->caseset == 0 && record->other_case == 0);
|
||||
+#endif
|
||||
|
||||
SLJIT_ASSERT(UCD_BLOCK_SIZE == 128 && sizeof(ucd_record) == 8);
|
||||
|
||||
sljit_emit_fast_enter(compiler, RETURN_ADDR, 0);
|
||||
+
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+if (!common->utf)
|
||||
+ {
|
||||
+ jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0x10ffff + 1);
|
||||
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, INVALID_UTF_CHAR);
|
||||
+ JUMPHERE(jump);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
OP2(SLJIT_LSHR, TMP2, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_SHIFT);
|
||||
OP1(SLJIT_MOV_U8, TMP2, 0, SLJIT_MEM1(TMP2), (sljit_sw)PRIV(ucd_stage1));
|
||||
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_MASK);
|
||||
@@ -5636,6 +5658,15 @@ if (needstype || needsscript)
|
||||
if (needschar && !charsaved)
|
||||
OP1(SLJIT_MOV, RETURN_ADDR, 0, TMP1, 0);
|
||||
|
||||
+#ifdef COMPILE_PCRE32
|
||||
+ if (!common->utf)
|
||||
+ {
|
||||
+ jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0x10ffff + 1);
|
||||
+ OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, INVALID_UTF_CHAR);
|
||||
+ JUMPHERE(jump);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
OP2(SLJIT_LSHR, TMP2, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_SHIFT);
|
||||
OP1(SLJIT_MOV_U8, TMP2, 0, SLJIT_MEM1(TMP2), (sljit_sw)PRIV(ucd_stage1));
|
||||
OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_MASK);
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,67 +0,0 @@
|
||||
From 63f1aabcabdc7ace28c649657fe2a4f880a87c5a Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Mon, 20 Feb 2017 17:45:21 +0000
|
||||
Subject: [PATCH] Fix recognition of (?# style comment between quantifier and
|
||||
'+' or '?'.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1682 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
|
||||
diff --git a/pcre_compile.c b/pcre_compile.c
|
||||
index de92313..c787813 100644
|
||||
--- a/pcre_compile.c
|
||||
+++ b/pcre_compile.c
|
||||
@@ -5739,6 +5739,21 @@ for (;; ptr++)
|
||||
ptr = p - 1; /* Character before the next significant one. */
|
||||
}
|
||||
|
||||
+ /* We also need to skip over (?# comments, which are not dependent on
|
||||
+ extended mode. */
|
||||
+
|
||||
+ if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK &&
|
||||
+ ptr[3] == CHAR_NUMBER_SIGN)
|
||||
+ {
|
||||
+ ptr += 4;
|
||||
+ while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;
|
||||
+ if (*ptr == CHAR_NULL)
|
||||
+ {
|
||||
+ *errorcodeptr = ERR18;
|
||||
+ goto FAILED;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* If the next character is '+', we have a possessive quantifier. This
|
||||
implies greediness, whatever the setting of the PCRE_UNGREEDY option.
|
||||
If the next character is '?' this is a minimizing repeat, by default,
|
||||
diff --git a/testdata/testinput1 b/testdata/testinput1
|
||||
index 93abab3..5c23f41 100644
|
||||
--- a/testdata/testinput1
|
||||
+++ b/testdata/testinput1
|
||||
@@ -5739,4 +5739,7 @@ AbcdCBefgBhiBqz
|
||||
/(?=.*X)X$/
|
||||
\ X
|
||||
|
||||
+/X+(?#comment)?/
|
||||
+ >XXX<
|
||||
+
|
||||
/-- End of testinput1 --/
|
||||
diff --git a/testdata/testoutput1 b/testdata/testoutput1
|
||||
index a2b3cff..eff8ecc 100644
|
||||
--- a/testdata/testoutput1
|
||||
+++ b/testdata/testoutput1
|
||||
@@ -9442,4 +9442,8 @@ No match
|
||||
\ X
|
||||
0: X
|
||||
|
||||
+/X+(?#comment)?/
|
||||
+ >XXX<
|
||||
+ 0: X
|
||||
+
|
||||
/-- End of testinput1 --/
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,36 +0,0 @@
|
||||
From b2f1496a36e68565421bd21485605d6af2a5819f Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Mon, 27 Mar 2017 16:00:16 +0000
|
||||
Subject: [PATCH] Fix typo (leading to possible buffer overflow in
|
||||
pcre_copy_substring()) in pcretest.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1691 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
---
|
||||
pcretest.c | 4 ++--
|
||||
|
||||
diff --git a/pcretest.c b/pcretest.c
|
||||
index 0a153be..26578e1 100644
|
||||
--- a/pcretest.c
|
||||
+++ b/pcretest.c
|
||||
@@ -426,11 +426,11 @@ argument, the casting might be incorrectly applied. */
|
||||
#define PCRE_COPY_NAMED_SUBSTRING32(rc, re, bptr, offsets, count, \
|
||||
namesptr, cbuffer, size) \
|
||||
rc = pcre32_copy_named_substring((pcre32 *)re, (PCRE_SPTR32)bptr, offsets, \
|
||||
- count, (PCRE_SPTR32)namesptr, (PCRE_UCHAR32 *)cbuffer, size/2)
|
||||
+ count, (PCRE_SPTR32)namesptr, (PCRE_UCHAR32 *)cbuffer, size/4)
|
||||
|
||||
#define PCRE_COPY_SUBSTRING32(rc, bptr, offsets, count, i, cbuffer, size) \
|
||||
rc = pcre32_copy_substring((PCRE_SPTR32)bptr, offsets, count, i, \
|
||||
- (PCRE_UCHAR32 *)cbuffer, size/2)
|
||||
+ (PCRE_UCHAR32 *)cbuffer, size/4)
|
||||
|
||||
#define PCRE_DFA_EXEC32(count, re, extra, bptr, len, start_offset, options, \
|
||||
offsets, size_offsets, workspace, size_workspace) \
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 312dd5d85714f73c247131b541405cf0bf24581b Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Thu, 23 Feb 2017 16:24:08 +0000
|
||||
Subject: [PATCH] Make pcretest check size of \O argument.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1686 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
|
||||
diff --git a/pcretest.c b/pcretest.c
|
||||
index 797f99c..0a153be 100644
|
||||
--- a/pcretest.c
|
||||
+++ b/pcretest.c
|
||||
@@ -4834,7 +4834,16 @@ while (!done)
|
||||
continue;
|
||||
|
||||
case 'O':
|
||||
- while(isdigit(*p)) n = n * 10 + *p++ - '0';
|
||||
+ while(isdigit(*p))
|
||||
+ {
|
||||
+ if (n > (INT_MAX-10)/10) /* Hack to stop fuzzers */
|
||||
+ {
|
||||
+ printf("** \\O argument is too big\n");
|
||||
+ yield = 1;
|
||||
+ goto EXIT;
|
||||
+ }
|
||||
+ n = n * 10 + *p++ - '0';
|
||||
+ }
|
||||
if (n > size_offsets_max)
|
||||
{
|
||||
size_offsets_max = n;
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,39 +0,0 @@
|
||||
From e7991eb5273b5b4162656f4b3d32e68a7430805a Mon Sep 17 00:00:00 2001
|
||||
From: ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Thu, 23 Feb 2017 17:25:44 +0000
|
||||
Subject: [PATCH] Minor doc update.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1687 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
|
||||
Petr Písař: Ported to 8.40.
|
||||
|
||||
diff --git a/doc/pcretest.1 b/doc/pcretest.1
|
||||
index 92640da..1b89071 100644
|
||||
--- a/doc/pcretest.1
|
||||
+++ b/doc/pcretest.1
|
||||
@@ -50,6 +50,10 @@ newline as data characters. However, in some Windows environments character 26
|
||||
(hex 1A) causes an immediate end of file, and no further data is read. For
|
||||
maximum portability, therefore, it is safest to use only ASCII characters in
|
||||
\fBpcretest\fP input files.
|
||||
+.P
|
||||
+The input is processed using using C's string functions, so must not
|
||||
+contain binary zeroes, even though in Unix-like environments, \fBfgets()\fP
|
||||
+treats any bytes other than newline as data characters.
|
||||
.
|
||||
.
|
||||
.SH "PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES"
|
||||
@@ -1151,6 +1155,6 @@ Cambridge CB2 3QH, England.
|
||||
.rs
|
||||
.sp
|
||||
.nf
|
||||
-Last updated: 09 February 2014
|
||||
-Copyright (c) 1997-2014 University of Cambridge.
|
||||
+Last updated: 23 February 2017
|
||||
+Copyright (c) 1997-2017 University of Cambridge.
|
||||
.fi
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 875a7d84d6cc77431db27eeb140d9e94e4584e31 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 14 Feb 2017 17:00:44 +0100
|
||||
Subject: [PATCH] Silent a GCC 7 warning about too small buffer for printing an
|
||||
integer
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GCC 7 reports this warning:
|
||||
|
||||
pcregrep.c:3194:68: warning: '%d' directive writing between 1 and 10 bytes into
|
||||
a region of size 8 [-Wformat-overflow=]
|
||||
if (patterns->next == NULL) s[0] = 0; else sprintf(s, " number %d", j);
|
||||
^~
|
||||
pcregrep.c:3194:59: note: directive argument in the range [1, 2147483647]
|
||||
if (patterns->next == NULL) s[0] = 0; else sprintf(s, " number %d", j);
|
||||
^~~~~~~~~~~~
|
||||
because the buffer s[] has only 16 characters. With 32-bit integers,
|
||||
one needs up to 19 bytes to represent the sprintf() text.
|
||||
|
||||
This patch fixes it by avoiding the buffer at all.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
pcregrep.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pcregrep.c b/pcregrep.c
|
||||
index 3cd70ee..87a3c2e 100644
|
||||
--- a/pcregrep.c
|
||||
+++ b/pcregrep.c
|
||||
@@ -3190,9 +3190,11 @@ for (j = 1, cp = patterns; cp != NULL; j++, cp = cp->next)
|
||||
cp->hint = pcre_study(cp->compiled, study_options, &error);
|
||||
if (error != NULL)
|
||||
{
|
||||
- char s[16];
|
||||
- if (patterns->next == NULL) s[0] = 0; else sprintf(s, " number %d", j);
|
||||
- fprintf(stderr, "pcregrep: Error while studying regex%s: %s\n", s, error);
|
||||
+ if (patterns->next == NULL)
|
||||
+ fprintf(stderr, "pcregrep: Error while studying regex: %s\n", error);
|
||||
+ else
|
||||
+ fprintf(stderr, "pcregrep: Error while studying regex number %d: %s\n",
|
||||
+ j, error);
|
||||
goto EXIT2;
|
||||
}
|
||||
#ifdef SUPPORT_PCREGREP_JIT
|
||||
--
|
||||
2.7.4
|
||||
|
44
pcre-8.41-RC1-JIT-compiler-update.patch
Normal file
44
pcre-8.41-RC1-JIT-compiler-update.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 90f29ca7fd20f31bf05ba8f996944663b1e7c5ed Mon Sep 17 00:00:00 2001
|
||||
From: zherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>
|
||||
Date: Thu, 15 Jun 2017 11:32:38 +0000
|
||||
Subject: [PATCH] JIT compiler update.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1704 2f5784b3-3f2a-0410-8824-cb99058d5e15
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
sljit/sljitNativeARM_32.c | 2 +-
|
||||
sljit/sljitNativeARM_64.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sljit/sljitNativeARM_32.c b/sljit/sljitNativeARM_32.c
|
||||
index baa816d..745da99 100644
|
||||
--- a/sljit/sljitNativeARM_32.c
|
||||
+++ b/sljit/sljitNativeARM_32.c
|
||||
@@ -2285,7 +2285,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil
|
||||
#endif
|
||||
}
|
||||
|
||||
- return push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_reg, SLJIT_UNUSED, src) & ~COND_MASK) | cc);
|
||||
+ return push_inst(compiler, (EMIT_DATA_PROCESS_INS(MOV_DP, 0, dst_reg, SLJIT_UNUSED, RM(src)) & ~COND_MASK) | cc);
|
||||
}
|
||||
|
||||
SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
|
||||
diff --git a/sljit/sljitNativeARM_64.c b/sljit/sljitNativeARM_64.c
|
||||
index cea8b33..fd67f50 100644
|
||||
--- a/sljit/sljitNativeARM_64.c
|
||||
+++ b/sljit/sljitNativeARM_64.c
|
||||
@@ -2063,7 +2063,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_cmov(struct sljit_compiler *compil
|
||||
cc = get_cc(type & 0xff);
|
||||
dst_reg &= ~SLJIT_I32_OP;
|
||||
|
||||
- return push_inst(compiler, (CSEL ^ inv_bits) | (cc << 12) | RD(dst_reg) | RN(src) | RM(dst_reg));
|
||||
+ return push_inst(compiler, (CSEL ^ inv_bits) | (cc << 12) | RD(dst_reg) | RN(dst_reg) | RM(src));
|
||||
}
|
||||
|
||||
SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
|
||||
--
|
||||
2.9.4
|
||||
|
74
pcre.spec
74
pcre.spec
@ -1,11 +1,10 @@
|
||||
# Is this a stable/testing release:
|
||||
#%%global rcversion RC1
|
||||
%global rcversion RC1
|
||||
Name: pcre
|
||||
Version: 8.40
|
||||
Release: %{?rcversion:0.}7%{?rcversion:.%rcversion}%{?dist}
|
||||
Version: 8.41
|
||||
Release: %{?rcversion:0.}1%{?rcversion:.%rcversion}%{?dist}
|
||||
%global myversion %{version}%{?rcversion:-%rcversion}
|
||||
Summary: Perl-compatible regular expression library
|
||||
Group: System Environment/Libraries
|
||||
## Source package only:
|
||||
# INSTALL: ???
|
||||
# install-sh: MIT and Public Domain
|
||||
@ -34,42 +33,8 @@ Source: ftp://ftp.csx.cam.ac.uk/pub/software/programming/%{name}/%{?rcversio
|
||||
Patch0: pcre-8.21-multilib.patch
|
||||
# Refused by upstream, bug #675477
|
||||
Patch1: pcre-8.32-refused_spelling_terminated.patch
|
||||
# Fix pcregrep multi-line matching --only-matching option, upstream bug #1848,
|
||||
# in upstream after 8.40
|
||||
Patch2: pcre-8.40-Correct-fix-for-pcre2grep-multiline-with-only-matchi.patch
|
||||
# Fix a crash in JIT compilation, CVE-2017-6004, upstream bug #2035,
|
||||
# in upstream after 8.40
|
||||
Patch3: pcre-8.40-Fix-a-missing-else-in-the-JIT-compiler-reported-by-i.patch
|
||||
# Fix a potenial buffer overflow in formatting a pcregrep error message,
|
||||
# upstream bug #2037, in upstream after 8.40
|
||||
Patch4: pcre-8.40-Silent-a-GCC-7-warning-about-too-small-buffer-for-pr.patch
|
||||
# Fix parsing comments between quantifiers, upstream bug #2019,
|
||||
# in upstream after 8.40
|
||||
Patch5: pcre-8.40-Fix-recognition-of-style-comment-between-quantifier-.patch
|
||||
# Fix a crash in pcretest when printing non-ASCII characters,
|
||||
# upstream bug #2043, in upstream after 8.40
|
||||
Patch6: pcre-8.40-Check-character-256-for-isprint-in-pcretest.patch
|
||||
# Fix a crash in pcretest when \O directive was supplied with too big number,
|
||||
# upstream bug #2044, in upstream after 8.40
|
||||
Patch7: pcre-8.40-Make-pcretest-check-size-of-O-argument.patch
|
||||
# Document pcretest input cannot contain binary zeroes, upstream bug #2045,
|
||||
# in upstream after 8.40
|
||||
Patch8: pcre-8.40-Minor-doc-update.patch
|
||||
# Fix a crash when finding a Unicode property for a character with a code
|
||||
# point greater than 0x10ffff in UTF-32 library while UTF mode is disabled,
|
||||
# CVE-2017-7244 upstream bug #2052, in upstream after 8.40
|
||||
Patch9: pcre-8.40-Fix-Unicode-property-crash-for-32-bit-characters-gre.patch
|
||||
# Fix DFA match for a possessively repeated character class,
|
||||
# upstream bug #2086, in upstream after 8.40
|
||||
Patch10: pcre-8.40-Fix-DFA-match-handling-of-possessive-repeated-charac.patch
|
||||
# Fix a buffer overflow in pcretest tool when copying a string in UTF-32 mode,
|
||||
# in upstream after 8.40
|
||||
Patch11: pcre-8.40-Fix-typo-leading-to-possible-buffer-overflow-in-pcre.patch
|
||||
# Fix CVE-2017-7186 in JIT mode (a crash when finding a Unicode property for
|
||||
# a character with a code point greater than 0x10ffff in UTF-32 library while
|
||||
# UTF mode is disabled), bug #1434504, upstream bug #2052,
|
||||
# in upstream after 8.40
|
||||
Patch12: pcre-8.40-Fix-character-type-detection-when-32-bit-and-UCP-are.patch
|
||||
# Fix JIT on ARM, in upstream after 8.41-RC1
|
||||
Patch2: pcre-8.41-RC1-JIT-compiler-update.patch
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
@ -95,7 +60,6 @@ encodings. Detailed change log is provided by %{name}-doc package.
|
||||
|
||||
%package utf16
|
||||
Summary: UTF-16 variant of PCRE
|
||||
Group: Development/Libraries
|
||||
Conflicts: %{name}%{?_isa} < 8.38-12
|
||||
|
||||
%description utf16
|
||||
@ -104,7 +68,6 @@ Detailed change log is provided by %{name}-doc package.
|
||||
|
||||
%package utf32
|
||||
Summary: UTF-32 variant of PCRE
|
||||
Group: Development/Libraries
|
||||
Conflicts: %{name}%{?_isa} < 8.38-12
|
||||
|
||||
%description utf32
|
||||
@ -113,7 +76,6 @@ Detailed change log is provided by %{name}-doc package.
|
||||
|
||||
%package cpp
|
||||
Summary: C++ bindings for PCRE
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description cpp
|
||||
@ -122,7 +84,6 @@ Detailed change log is provided by %{name}-doc package.
|
||||
|
||||
%package doc
|
||||
Summary: Change log for %{name}
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
@ -130,7 +91,6 @@ These are large documentation files about PCRE.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-cpp%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-utf16%{?_isa} = %{version}-%{release}
|
||||
@ -141,7 +101,6 @@ Development files (Headers, libraries for dynamic linking, etc) for %{name}.
|
||||
|
||||
%package static
|
||||
Summary: Static library for %{name}
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-devel%{_isa} = %{version}-%{release}
|
||||
|
||||
%description static
|
||||
@ -149,7 +108,6 @@ Library for static linking for %{name}.
|
||||
|
||||
%package tools
|
||||
Summary: Auxiliary utilities for %{name}
|
||||
Group: Development/Tools
|
||||
Requires: %{name}%{_isa} = %{version}-%{release}
|
||||
|
||||
%description tools
|
||||
@ -161,16 +119,6 @@ Utilities demonstrating PCRE capabilities like pcregrep or pcretest.
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
# Because of rpath patch
|
||||
libtoolize --copy --force
|
||||
autoreconf -vif
|
||||
@ -192,8 +140,13 @@ done
|
||||
%else
|
||||
--enable-jit \
|
||||
%endif
|
||||
--enable-pcretest-libreadline --enable-utf --enable-unicode-properties \
|
||||
--enable-pcre8 --enable-pcre16 --enable-pcre32
|
||||
--enable-pcretest-libreadline \
|
||||
--enable-utf \
|
||||
--enable-unicode-properties \
|
||||
--enable-pcre8 \
|
||||
--enable-pcre16 \
|
||||
--enable-pcre32 \
|
||||
--disable-silent-rules
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
@ -267,6 +220,9 @@ make %{?_smp_mflags} check VERBOSE=yes
|
||||
%{_mandir}/man1/pcretest.*
|
||||
|
||||
%changelog
|
||||
* Wed Jun 14 2017 Petr Pisar <ppisar@redhat.com> - 8.41-0.1.RC1
|
||||
- 8.41 RC1 bump
|
||||
|
||||
* Fri Apr 21 2017 Petr Pisar <ppisar@redhat.com> - 8.40-7
|
||||
- Fix a buffer overflow in pcretest tool when copying a string in UTF-32 mode
|
||||
- Fix CVE-2017-7186 in JIT mode (a crash when finding a Unicode property for
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (pcre-8.40.tar.bz2) = b4c27eafbdf33bd7a1384655b1936f4be3bc6745c072347eb26e988896c52664bd85ac42444da1be78b6e20f45b6c7e5921f5f20f5b0741b5bd3d9844e5bd4e2
|
||||
SHA512 (pcre-8.41-RC1.tar.bz2) = 5d29f96af022a6fa8c6ca484f3c6756838f745423030102612138ed252f5bd1185e7b9e361b465332150d24af0361961765d4f872aa56518a32f709e014c845a
|
||||
|
Loading…
Reference in New Issue
Block a user