Blob Blame History Raw
From 9c492e69185fbbebb713deec3cfa28b703c450f0 Mon Sep 17 00:00:00 2001
From: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
Date: Tue, 21 Mar 2017 17:46:21 +0000
Subject: [PATCH] Fix 32-bit error buffer size bug in pcre2test (Bugzilla
 2079).
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@696 6239d852-aaf2-0410-a92c-79f79f948069

Petr Písař: Ported to 10.21.

Signed-off-by: Petr Písař <ppisar@redhat.com>
---
 src/pcre2_error.c    | 2 +-
 src/pcre2test.c      | 2 +-
 testdata/testinput2  | 2 ++
 testdata/testoutput2 | 3 +++
 4 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/pcre2_error.c b/src/pcre2_error.c
index 6b4756a..aaf5bb9 100644
--- a/src/pcre2_error.c
+++ b/src/pcre2_error.c
@@ -267,7 +267,7 @@ distinct.
 Arguments:
   enumber       error number
   buffer        where to put the message (zero terminated)
-  size          size of the buffer
+  size          size of the buffer in code units
 
 Returns:        length of message if all is well
                 negative on error
diff --git a/src/pcre2test.c b/src/pcre2test.c
index a59b804..4c59396 100644
--- a/src/pcre2test.c
+++ b/src/pcre2test.c
@@ -2794,7 +2794,7 @@ if (pbuffer32_size < 4*len + 4)
   {
   if (pbuffer32 != NULL) free(pbuffer32);
   pbuffer32_size = 4*len + 4;
-  if (pbuffer32_size < 256) pbuffer32_size = 256;
+  if (pbuffer32_size < 512) pbuffer32_size = 512;
   pbuffer32 = (uint32_t *)malloc(pbuffer32_size);
   if (pbuffer32 == NULL)
     {
diff --git a/testdata/testinput2 b/testdata/testinput2
index 7e26f05..710ff4d 100644
--- a/testdata/testinput2
+++ b/testdata/testinput2
@@ -4825,4 +4825,6 @@ a)"xI
 //
     \=ovector=7777777777
 
+/\g{3/
+
 # End of testinput2 
diff --git a/testdata/testoutput2 b/testdata/testoutput2
index b35b207..18ed10e 100644
--- a/testdata/testoutput2
+++ b/testdata/testoutput2
@@ -15224,4 +15224,7 @@ Failed: error -33: bad offset value
     \=ovector=7777777777
 ** Invalid value in 'ovector=7777777777'
 
+/\g{3/
+Failed: error 157 at offset 4: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number
+
 # End of testinput2 
-- 
2.13.6