X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9f1a75f126ae217a3a3568b106c9133b3c5c413a..a85c067ba6c6940512cf57ec213277a370d87e70:/src/src/malware.c diff --git a/src/src/malware.c b/src/src/malware.c index 8b5ec27c4..96514e276 100644 --- a/src/src/malware.c +++ b/src/src/malware.c @@ -6,6 +6,7 @@ * Copyright (c) The Exim Maintainers 2015 - 2022 * Copyright (c) Tom Kistner 2003 - 2015 * License: GPL + * SPDX-License-Identifier: GPL-2.0-only */ /* Code for calling virus (malware) scanners. Called from acl.c. */ @@ -310,13 +311,16 @@ m_pcre_exec(const pcre2_code * cre, uschar * text) { pcre2_match_data * md = pcre2_match_data_create(2, pcre_gen_ctx); int i = pcre2_match(cre, text, PCRE2_ZERO_TERMINATED, 0, 0, md, pcre_gen_mtc_ctx); -PCRE2_UCHAR * substr = NULL; -PCRE2_SIZE slen; +uschar * substr = NULL; if (i >= 2) /* Got it */ - pcre2_substring_get_bynumber(md, 1, &substr, &slen); /* uses same ctx as md */ + { + PCRE2_SIZE * ovec = pcre2_get_ovector_pointer(md); + int len = ovec[3] - ovec[2]; + substr = string_copyn(text + ovec[2], len); + } /* pcre2_match_data_free(md); gen ctx needs no free */ -return US substr; +return substr; } static const pcre2_code *