summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2017-06-13 16:53:16 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2017-06-13 16:53:16 +0000
commit9e744d9e9a0f37eb6346ab7551f9e6ad8e3a0848 (patch)
tree1a3aa4bba94e0b6d5e5bc078c05277cd7674f267
parentb82c2fee81bb27e760339beb8124aa0f948ecbd5 (diff)
downloadpcre-9e744d9e9a0f37eb6346ab7551f9e6ad8e3a0848.tar.gz
File tidies for 8.41-RC1 release.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1703 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r--ChangeLog34
-rw-r--r--NEWS6
-rw-r--r--configure.ac10
-rw-r--r--doc/html/pcrejit.html18
-rw-r--r--doc/html/pcretest.html9
-rw-r--r--doc/pcre.txt14
-rw-r--r--doc/pcretest.12
-rw-r--r--doc/pcretest.txt8
-rwxr-xr-xmaint/ManyConfigTests1
-rw-r--r--pcre_compile.c4
-rw-r--r--pcre_internal.h4
-rw-r--r--pcregrep.c16
-rw-r--r--pcretest.c8
13 files changed, 83 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog
index faba427..5c3a381 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,50 +4,50 @@ ChangeLog for PCRE
Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
development is happening in the PCRE2 10.xx series.
-Version 8.41
-------------
+Version 8.41 13-June-2017
+-------------------------
-1. Fixed typo in CMakeLists.txt (wrong number of arguments for
+1. Fixed typo in CMakeLists.txt (wrong number of arguments for
PCRE_STATIC_RUNTIME (affects MSVC only).
-2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline
-mode with --only-matching matched several lines, it restarted scanning at the
-next line instead of moving on to the end of the matched string, which can be
+2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline
+mode with --only-matching matched several lines, it restarted scanning at the
+next line instead of moving on to the end of the matched string, which can be
several lines after the start.
3. Fix a missing else in the JIT compiler reported by 'idaifish'.
-4. A (?# style comment is now ignored between a basic quantifier and a
+4. A (?# style comment is now ignored between a basic quantifier and a
following '+' or '?' (example: /X+(?#comment)?Y/.
-5. Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr
+5. Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr
Pisar).
-6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
-after all, just a test program). However, to stop the reports, some easy ones
+6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
+after all, just a test program). However, to stop the reports, some easy ones
are fixed:
(a) Check for values < 256 when calling isprint() in pcretest.
- (b) Give an error for too big a number after \O.
-
-7. In the 32-bit library in non-UTF mode, an attempt to find a Unicode
-property for a character with a code point greater than 0x10ffff (the Unicode
+ (b) Give an error for too big a number after \O.
+
+7. In the 32-bit library in non-UTF mode, an attempt to find a Unicode
+property for a character with a code point greater than 0x10ffff (the Unicode
maximum) caused a crash.
8. The alternative matching function, pcre_dfa_exec() misbehaved if it
encountered a character class with a possessive repeat, for example [a-f]{3}+.
-9. When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer
+9. When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer
length incorrectly, which could result in buffer overflow.
10. Remove redundant line of code (accidentally left in ages ago).
-11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives
+11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives
with namespace pcrecpp (Bugzilla #2084).
12. Remove a duplication typo in pcre_tables.c.
-13. Fix returned offsets from regexec() when REG_STARTEND is used with a
+13. Fix returned offsets from regexec() when REG_STARTEND is used with a
starting offset greater than zero.
diff --git a/NEWS b/NEWS
index b92c4f9..36be07c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,12 @@
News about PCRE releases
------------------------
+Release 8.41 13-June-2017
+-------------------------
+
+This is a bug-fix release.
+
+
Release 8.40 11-January-2017
----------------------------
diff --git a/configure.ac b/configure.ac
index 8f12eca..c67bea3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,16 +11,16 @@ dnl be defined as -RC2, for example. For real releases, it should be empty.
m4_define(pcre_major, [8])
m4_define(pcre_minor, [41])
m4_define(pcre_prerelease, [-RC1])
-m4_define(pcre_date, [2017-02-01])
+m4_define(pcre_date, [2017-06-13])
# NOTE: The CMakeLists.txt file searches for the above variables in the first
# 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:8:2])
-m4_define(libpcre16_version, [2:8:2])
-m4_define(libpcre32_version, [0:8:0])
-m4_define(libpcreposix_version, [0:4:0])
+m4_define(libpcre_version, [3:9:2])
+m4_define(libpcre16_version, [2:9:2])
+m4_define(libpcre32_version, [0:9:0])
+m4_define(libpcreposix_version, [0:5:0])
m4_define(libpcrecpp_version, [0:1:0])
AC_PREREQ(2.57)
diff --git a/doc/html/pcrejit.html b/doc/html/pcrejit.html
index 210f1da..193b8e5 100644
--- a/doc/html/pcrejit.html
+++ b/doc/html/pcrejit.html
@@ -79,9 +79,11 @@ API that is JIT-specific.
</P>
<P>
If your program may sometimes be linked with versions of PCRE that are older
-than 8.20, but you want to use JIT when it is available, you can test
-the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such
-as PCRE_CONFIG_JIT, for compile-time control of your code.
+than 8.20, but you want to use JIT when it is available, you can test the
+values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such as
+PCRE_CONFIG_JIT, for compile-time control of your code. Also beware that the
+<b>pcre_jit_exec()</b> function was not available before 8.32. See "JIT FAST
+PATH API" section below for details.
</P>
<br><a name="SEC4" href="#TOC1">SIMPLE USE OF JIT</a><br>
<P>
@@ -428,6 +430,12 @@ fast path, and if invalid data is passed, the result is undefined.
Bypassing the sanity checks and the <b>pcre_exec()</b> wrapping can give
speedups of more than 10%.
</P>
+<P>
+Note that the <b>pcre_jit_exec()</b> function is not available in versions of
+PCRE before 8.32 (released in November 2012). If you need to support versions
+that old you must either use the slower <b>pcre_exec()</b>, or switch between
+the two codepaths by checking the values of PCRE_MAJOR and PCRE_MINOR.
+</P>
<br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>
<P>
<b>pcreapi</b>(3)
@@ -443,9 +451,9 @@ Cambridge CB2 3QH, England.
</P>
<br><a name="SEC14" href="#TOC1">REVISION</a><br>
<P>
-Last updated: 17 March 2013
+Last updated: 13 June 2017
<br>
-Copyright &copy; 1997-2013 University of Cambridge.
+Copyright &copy; 1997-2017 University of Cambridge.
<br>
<p>
Return to the <a href="index.html">PCRE index page</a>.
diff --git a/doc/html/pcretest.html b/doc/html/pcretest.html
index 839fabf..ba540d3 100644
--- a/doc/html/pcretest.html
+++ b/doc/html/pcretest.html
@@ -74,6 +74,11 @@ newline as data characters. However, in some Windows environments character 26
maximum portability, therefore, it is safest to use only ASCII characters in
<b>pcretest</b> input files.
</P>
+<P>
+The input is processed using using C's string functions, so must not
+contain binary zeroes, even though in Unix-like environments, <b>fgets()</b>
+treats any bytes other than newline as data characters.
+</P>
<br><a name="SEC3" href="#TOC1">PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br>
<P>
From release 8.30, two separate PCRE libraries can be built. The original one
@@ -1149,9 +1154,9 @@ Cambridge CB2 3QH, England.
</P>
<br><a name="SEC17" href="#TOC1">REVISION</a><br>
<P>
-Last updated: 09 February 2014
+Last updated: 23 February 2017
<br>
-Copyright &copy; 1997-2014 University of Cambridge.
+Copyright &copy; 1997-2017 University of Cambridge.
<br>
<p>
Return to the <a href="index.html">PCRE index page</a>.
diff --git a/doc/pcre.txt b/doc/pcre.txt
index d68d503..3614724 100644
--- a/doc/pcre.txt
+++ b/doc/pcre.txt
@@ -8365,7 +8365,9 @@ AVAILABILITY OF JIT SUPPORT
If your program may sometimes be linked with versions of PCRE that are
older than 8.20, but you want to use JIT when it is available, you can
test the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT
- macro such as PCRE_CONFIG_JIT, for compile-time control of your code.
+ macro such as PCRE_CONFIG_JIT, for compile-time control of your code.
+ Also beware that the pcre_jit_exec() function was not available before
+ 8.32. See "JIT FAST PATH API" section below for details.
SIMPLE USE OF JIT
@@ -8696,6 +8698,12 @@ JIT FAST PATH API
Bypassing the sanity checks and the pcre_exec() wrapping can give
speedups of more than 10%.
+ Note that the pcre_jit_exec() function is not available in versions of
+ PCRE before 8.32 (released in November 2012). If you need to support
+ versions that old you must either use the slower pcre_exec(), or switch
+ between the two codepaths by checking the values of PCRE_MAJOR and
+ PCRE_MINOR.
+
SEE ALSO
@@ -8711,8 +8719,8 @@ AUTHOR
REVISION
- Last updated: 17 March 2013
- Copyright (c) 1997-2013 University of Cambridge.
+ Last updated: 13 June 2017
+ Copyright (c) 1997-2017 University of Cambridge.
------------------------------------------------------------------------------
diff --git a/doc/pcretest.1 b/doc/pcretest.1
index 1b89071..ea7457c 100644
--- a/doc/pcretest.1
+++ b/doc/pcretest.1
@@ -51,7 +51,7 @@ newline as data characters. However, in some Windows environments character 26
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
+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.
.
diff --git a/doc/pcretest.txt b/doc/pcretest.txt
index 55de502..6d7305c 100644
--- a/doc/pcretest.txt
+++ b/doc/pcretest.txt
@@ -39,6 +39,10 @@ INPUT DATA FORMAT
For maximum portability, therefore, it is safest to use only ASCII
characters in pcretest input files.
+ The input is processed using using C's string functions, so must not
+ contain binary zeroes, even though in Unix-like environments, fgets()
+ treats any bytes other than newline as data characters.
+
PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES
@@ -1083,5 +1087,5 @@ AUTHOR
REVISION
- Last updated: 09 February 2014
- Copyright (c) 1997-2014 University of Cambridge.
+ Last updated: 23 February 2017
+ Copyright (c) 1997-2017 University of Cambridge.
diff --git a/maint/ManyConfigTests b/maint/ManyConfigTests
index bc5e71b..267739d 100755
--- a/maint/ManyConfigTests
+++ b/maint/ManyConfigTests
@@ -38,6 +38,7 @@ cc --version >zzz 2>/dev/null
if [ $? -eq 0 ] && grep GCC zzz >/dev/null; then
ISGCC="yes"
CFLAGS="$CFLAGS -Wall"
+ CFLAGS="$CFLAGS -Wno-implicit-fallthrough"
CFLAGS="$CFLAGS -Wno-overlength-strings"
CFLAGS="$CFLAGS -Wpointer-arith"
CFLAGS="$CFLAGS -Wwrite-strings"
diff --git a/pcre_compile.c b/pcre_compile.c
index 85df41a..42f204c 100644
--- a/pcre_compile.c
+++ b/pcre_compile.c
@@ -5739,9 +5739,9 @@ for (;; ptr++)
ptr = p - 1; /* Character before the next significant one. */
}
- /* We also need to skip over (?# comments, which are not dependent on
+ /* 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)
{
diff --git a/pcre_internal.h b/pcre_internal.h
index 154d3f6..97ff55d 100644
--- a/pcre_internal.h
+++ b/pcre_internal.h
@@ -2786,12 +2786,12 @@ extern const int PRIV(ucp_typerange)[];
#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
+#endif
#define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype
#define UCD_SCRIPT(ch) GET_UCD(ch)->script
diff --git a/pcregrep.c b/pcregrep.c
index 87a3c2e..317f745 100644
--- a/pcregrep.c
+++ b/pcregrep.c
@@ -1816,18 +1816,18 @@ while (ptr < endptr)
/* 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. */
-
+ before searching for more matches. */
+
while (startoffset > (int)linelength)
- {
- matchptr = ptr += linelength + endlinelength;
- filepos += (int)(linelength + endlinelength);
- linenumber++;
+ {
+ 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);
- }
+ length = (size_t)(endptr - ptr);
+ }
goto ONLY_MATCHING_RESTART;
}
diff --git a/pcretest.c b/pcretest.c
index 26578e1..f130303 100644
--- a/pcretest.c
+++ b/pcretest.c
@@ -4834,16 +4834,16 @@ while (!done)
continue;
case 'O':
- while(isdigit(*p))
+ while(isdigit(*p))
{
if (n > (INT_MAX-10)/10) /* Hack to stop fuzzers */
{
printf("** \\O argument is too big\n");
yield = 1;
- goto EXIT;
- }
+ goto EXIT;
+ }
n = n * 10 + *p++ - '0';
- }
+ }
if (n > size_offsets_max)
{
size_offsets_max = n;