diff options
author | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2020-02-10 17:01:27 +0000 |
---|---|---|
committer | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2020-02-10 17:01:27 +0000 |
commit | 3564d44ed1e70f1bf1e85b75274699b6720792ff (patch) | |
tree | fc68ea61e78b8169fbd930d4401e52c444c98db7 | |
parent | efa73cc37ef5acbf0c7e9e01c464343d92619b69 (diff) | |
download | pcre-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-- | ChangeLog | 4 | ||||
-rw-r--r-- | pcreposix.c | 5 |
2 files changed, 6 insertions, 3 deletions
@@ -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. */ |