summaryrefslogtreecommitdiff
path: root/pcre_jit_compile.c
diff options
context:
space:
mode:
authorzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-04-21 07:13:00 +0000
committerzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2015-04-21 07:13:00 +0000
commitb36a43555e3c3ca24cad709be9702273effb68aa (patch)
tree4a1e3cd64f43b4895ac7580c51e7bec8da6c93e6 /pcre_jit_compile.c
parente2126bc127a8b4c3602dd28ebb2862ad6fbc27a6 (diff)
downloadpcre-b36a43555e3c3ca24cad709be9702273effb68aa.tar.gz
Fix JIT assertion failure.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1549 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcre_jit_compile.c')
-rw-r--r--pcre_jit_compile.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pcre_jit_compile.c b/pcre_jit_compile.c
index dd378e0..debdf6e 100644
--- a/pcre_jit_compile.c
+++ b/pcre_jit_compile.c
@@ -1533,7 +1533,11 @@ while (cc < ccend)
{
case OP_KET:
if (PRIVATE_DATA(cc) != 0)
+ {
private_data_length++;
+ SLJIT_ASSERT(PRIVATE_DATA(cc + 1) != 0);
+ cc += PRIVATE_DATA(cc + 1);
+ }
cc += 1 + LINK_SIZE;
break;
@@ -1548,6 +1552,7 @@ while (cc < ccend)
case OP_SBRAPOS:
case OP_SCOND:
private_data_length++;
+ SLJIT_ASSERT(PRIVATE_DATA(cc) != 0);
cc += 1 + LINK_SIZE;
break;
@@ -1710,6 +1715,8 @@ do
{
count = 1;
srcw[0] = PRIVATE_DATA(cc);
+ SLJIT_ASSERT(PRIVATE_DATA(cc + 1) != 0);
+ cc += PRIVATE_DATA(cc + 1);
}
cc += 1 + LINK_SIZE;
break;