From 3564d44ed1e70f1bf1e85b75274699b6720792ff Mon Sep 17 00:00:00 2001 From: ph10 Date: Mon, 10 Feb 2020 17:01:27 +0000 Subject: 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 --- ChangeLog | 4 ++++ pcreposix.c | 5 ++--- 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. */ -- cgit v1.2.1