From 0b2b017da7c68a8cddd3ee3395dcc26c87236402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 9 Apr 2015 17:02:59 +0200 Subject: [PATCH] Fix memory bug for [\S\V\H] compile. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is upstream commit ported to 8.36: commit ef430ada283aba3ff71d7de496904f4d137280f8 Author: ph10 Date: Fri Mar 27 16:44:50 2015 +0000 Fix memory bug for [\S\V\H] compile. git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1536 2f5784b3-3f2a-0410-8824- cb99058d5e15 Signed-off-by: Petr Písař --- pcre_compile.c | 6 ++++++ testdata/testinput4 | 2 ++ testdata/testoutput4 | 2 ++ 3 files changed, 10 insertions(+) diff --git a/pcre_compile.c b/pcre_compile.c index efc0b21..c256ea5 100644 --- a/pcre_compile.c +++ b/pcre_compile.c @@ -5472,6 +5472,12 @@ for (;; ptr++) } #endif + /* Even though any XCLASS list is now discarded, we must allow for + its memory. */ + + if (lengthptr != NULL) + *lengthptr += (int)(class_uchardata - class_uchardata_base); + /* If there are no characters > 255, or they are all to be included or excluded, set the opcode to OP_CLASS or OP_NCLASS, depending on whether the whole class was negated and whether there were negative specials such as \S diff --git a/testdata/testinput4 b/testdata/testinput4 index 0110267..04fca1a 100644 --- a/testdata/testinput4 +++ b/testdata/testinput4 @@ -722,4 +722,6 @@ /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/8 #\x{10000}#\x{100}#\x{10ffff}# +"[\S\V\H]"8 + /-- End of testinput4 --/ diff --git a/testdata/testoutput4 b/testdata/testoutput4 index dcf13b0..340a949 100644 --- a/testdata/testoutput4 +++ b/testdata/testoutput4 @@ -1271,4 +1271,6 @@ No match #\x{10000}#\x{100}#\x{10ffff}# 0: #\x{10000}#\x{100}#\x{10ffff}# +"[\S\V\H]"8 + /-- End of testinput4 --/ -- 2.1.0