| 1 |
ChangeLog for PCRE |
ChangeLog for PCRE |
| 2 |
------------------ |
------------------ |
| 3 |
|
|
| 4 |
Version 7.3 09-Aug-07 |
Version 7.3 16-Aug-07 |
| 5 |
--------------------- |
--------------------- |
| 6 |
|
|
| 7 |
1. In the rejigging of the build system that eventually resulted in 7.1, the |
1. In the rejigging of the build system that eventually resulted in 7.1, the |
| 98 |
the "low surrogate" sequence 0xD800 to 0xDFFF. Previously, PCRE allowed the |
the "low surrogate" sequence 0xD800 to 0xDFFF. Previously, PCRE allowed the |
| 99 |
full range 0 to 0x7FFFFFFF, as defined by RFC 2279. Internally, it still |
full range 0 to 0x7FFFFFFF, as defined by RFC 2279. Internally, it still |
| 100 |
does: it's just the validity check that is more restrictive. |
does: it's just the validity check that is more restrictive. |
| 101 |
|
|
| 102 |
16. Inserted checks for integer overflows during escape sequence (backslash) |
16. Inserted checks for integer overflows during escape sequence (backslash) |
| 103 |
processing, and also fixed erroneous offset values for syntax errors during |
processing, and also fixed erroneous offset values for syntax errors during |
| 104 |
backslash processing. |
backslash processing. |
| 105 |
|
|
| 106 |
17. Fixed another case of looking too far back in non-UTF-8 mode (cf 12 above) |
17. Fixed another case of looking too far back in non-UTF-8 mode (cf 12 above) |
| 107 |
for patterns like [\PPP\x8a]{1,}\x80 with the subject "A\x80". |
for patterns like [\PPP\x8a]{1,}\x80 with the subject "A\x80". |
| 108 |
|
|
| 109 |
18. An unterminated class in a pattern like (?1)\c[ with a "forward reference" |
18. An unterminated class in a pattern like (?1)\c[ with a "forward reference" |
| 110 |
caused an overrun. |
caused an overrun. |
| 111 |
|
|
| 112 |
19. A pattern like (?:[\PPa*]*){8,} which had an "extended class" (one with |
19. A pattern like (?:[\PPa*]*){8,} which had an "extended class" (one with |
| 113 |
something other than just ASCII characters) inside a group that had an |
something other than just ASCII characters) inside a group that had an |
| 114 |
unlimited repeat caused a loop at compile time (while checking to see |
unlimited repeat caused a loop at compile time (while checking to see |
| 115 |
whether the group could match an empty string). |
whether the group could match an empty string). |
| 116 |
|
|
| 117 |
20. Debugging a pattern containing \p or \P could cause a crash. For example, |
20. Debugging a pattern containing \p or \P could cause a crash. For example, |
| 118 |
[\P{Any}] did so. (Error in the code for printing property names.) |
[\P{Any}] did so. (Error in the code for printing property names.) |
| 119 |
|
|
| 120 |
|
21. An orphan \E inside a character class could cause a crash. |
| 121 |
|
|
| 122 |
|
22. A repeated capturing bracket such as (A)? could cause a wild memory |
| 123 |
|
reference during compilation. |
| 124 |
|
|
| 125 |
|
23. There are several functions in pcre_compile() that scan along a compiled |
| 126 |
|
expression for various reasons (e.g. to see if it's fixed length for look |
| 127 |
|
behind). There were bugs in these functions when a repeated \p or \P was |
| 128 |
|
present in the pattern. These operators have additional parameters compared |
| 129 |
|
with \d, etc, and these were not being taken into account when moving along |
| 130 |
|
the compiled data. Specifically: |
| 131 |
|
|
| 132 |
|
(a) A item such as \p{Yi}{3} in a lookbehind was not treated as fixed |
| 133 |
|
length. |
| 134 |
|
|
| 135 |
|
(b) An item such as \pL+ within a repeated group could cause crashes or |
| 136 |
|
loops. |
| 137 |
|
|
| 138 |
|
(c) A pattern such as \p{Yi}+(\P{Yi}+)(?1) could give an incorrect |
| 139 |
|
"reference to non-existent subpattern" error. |
| 140 |
|
|
| 141 |
|
24. A repeated \S or \W in UTF-8 mode could give wrong answers when multibyte |
| 142 |
|
characters were involved (for example /\S{2}/8g with "A\x{a3}BC"). |
| 143 |
|
|
| 144 |
|
|
| 145 |
Version 7.2 19-Jun-07 |
Version 7.2 19-Jun-07 |
| 146 |
--------------------- |
--------------------- |