Apply the fix stated in PCRE bug #1423
There is JIT misoptimization found during code refactoring that affects PCRE 8.34 (the version currently bundled with Qt). The upstream might not release a specific bugfix release before 8.35, hence the patch has been manually applied. Upstream issue: http://bugs.exim.org/show_bug.cgi?id=1423 Change-Id: I8dbbb2981bc037d39b30fcaded6894ee9820b8df Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
parent
d5d6e0cf99
commit
ad9554a7f2
15
src/3rdparty/pcre/patches/bug_1423_jit_condition_misoptimization_fix.diff
vendored
Normal file
15
src/3rdparty/pcre/patches/bug_1423_jit_condition_misoptimization_fix.diff
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Index: pcre_jit_compile.c
|
||||||
|
===================================================================
|
||||||
|
--- pcre_jit_compile.c (revision 1413)
|
||||||
|
+++ pcre_jit_compile.c (working copy)
|
||||||
|
@@ -3546,7 +3546,9 @@
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
- if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4]) && is_powerof2(ranges[4] - ranges[2]))
|
||||||
|
+ if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4])
|
||||||
|
+ && (ranges[2] | (ranges[4] - ranges[2])) == ranges[4]
|
||||||
|
+ && is_powerof2(ranges[4] - ranges[2]))
|
||||||
|
{
|
||||||
|
if (readch)
|
||||||
|
read_char(common);
|
4
src/3rdparty/pcre/pcre_jit_compile.c
vendored
4
src/3rdparty/pcre/pcre_jit_compile.c
vendored
@ -3546,7 +3546,9 @@ switch(ranges[0])
|
|||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4]) && is_powerof2(ranges[4] - ranges[2]))
|
if ((ranges[3] - ranges[2]) == (ranges[5] - ranges[4])
|
||||||
|
&& (ranges[2] | (ranges[4] - ranges[2])) == ranges[4]
|
||||||
|
&& is_powerof2(ranges[4] - ranges[2]))
|
||||||
{
|
{
|
||||||
if (readch)
|
if (readch)
|
||||||
read_char(common);
|
read_char(common);
|
||||||
|
Loading…
Reference in New Issue
Block a user