X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/4e9ed49f8f12eb331b29bd5b6dc3693c520fddc2..a85c067ba6c6940512cf57ec213277a370d87e70:/src/src/regex.c diff --git a/src/src/regex.c b/src/src/regex.c index 25496f950..eefba8ecf 100644 --- a/src/src/regex.c +++ b/src/src/regex.c @@ -6,6 +6,7 @@ * Copyright (c) The Exim Maintainers 2016 - 2022 * Copyright (c) Tom Kistner 2003-2015 * License: GPL + * SPDX-License-Identifier: GPL-2.0-only */ /* Code for matching regular expressions against headers and body. @@ -79,10 +80,10 @@ for (pcre_list * ri = re_list_head; ri; ri = ri->next) for (int nn = 1; nn < n; nn++) { - PCRE2_UCHAR * cstr; - PCRE2_SIZE cslen; - pcre2_substring_get_bynumber(md, nn, &cstr, &cslen); /* uses same ctx as md */ - regex_vars[nn-1] = CUS cstr; + PCRE2_SIZE * ovec = pcre2_get_ovector_pointer(md); + int off = nn * 2; + int len = ovec[off + 1] - ovec[off]; + regex_vars[nn-1] = string_copyn(linebuffer + ovec[off], len); } return OK;