summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2020-02-10 17:01:27 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2020-02-10 17:01:27 +0000
commit3564d44ed1e70f1bf1e85b75274699b6720792ff (patch)
treefc68ea61e78b8169fbd930d4401e52c444c98db7
parentefa73cc37ef5acbf0c7e9e01c464343d92619b69 (diff)
downloadpcre-3564d44ed1e70f1bf1e85b75274699b6720792ff.tar.gz
Minor fix to avoid sanitizer complaint in POSIX wrapper.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1760 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r--ChangeLog4
-rw-r--r--pcreposix.c5
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ce6aa3f..1106d04 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,6 +23,10 @@ added.
4. Fix ARMv5 JIT improper handling of labels right after a constant pool.
+5. Small patch to pcreposix.c to set the erroroffset field to -1 immediately
+after a successful compile, instead of at the start of matching to avoid a
+sanitizer complaint (regexec is supposed to be thread safe).
+
Version 8.43 23-February-2019
-----------------------------
diff --git a/pcreposix.c b/pcreposix.c
index a76d6bf..3042d76 100644
--- a/pcreposix.c
+++ b/pcreposix.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2018 University of Cambridge
+ Copyright (c) 1997-2020 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -298,6 +298,7 @@ if (preg->re_pcre == NULL)
(void)pcre_fullinfo((const pcre *)preg->re_pcre, NULL, PCRE_INFO_CAPTURECOUNT,
&re_nsub);
preg->re_nsub = (size_t)re_nsub;
+preg->re_erroffset = (size_t)(-1); /* No meaning after successful compile */
return 0;
}
@@ -335,8 +336,6 @@ if ((eflags & REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
if ((eflags & REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
if ((eflags & REG_NOTEMPTY) != 0) options |= PCRE_NOTEMPTY;
-((regex_t *)preg)->re_erroffset = (size_t)(-1); /* Only has meaning after compile */
-
/* When no string data is being returned, or no vector has been passed in which
to put it, ensure that nmatch is zero. Otherwise, ensure the vector for holding
the return data is large enough. */