https://bugs.exim.org/show_bug.cgi?id=2190
Bug ID: 2190
Summary: This will always return PCRE2_ERROR_NOMEMORY if
match_data and mcontext both are NULL
Product: PCRE
Version: 10.30 (PCRE2)
Hardware: x86
OS: All
Status: NEW
Severity: bug
Priority: medium
Component: Code
Assignee: ph10@???
Reporter: mvelanka@???
CC: pcre-dev@???
I see that the function pcre2_substitute has the following code
...
...
if (match_data == NULL)
{
pcre2_general_context *gcontext = (mcontext == NULL)?
(pcre2_general_context *)code :
(pcre2_general_context *)mcontext;
match_data = pcre2_match_data_create_from_pattern(code, gcontext);
if (match_data == NULL) return PCRE2_ERROR_NOMEMORY;
match_data_created = TRUE;
}
...
...
So if I am not wrong, if match_data == NULL and mcontext is also NULL then
gcontext becomes equal to code ???
and then
match data is prepared with
match_data = pcre2_match_data_create_from_pattern(code, code) ????
this is bound to fail ........is it not?
Please see.
As I think, the line should have been
pcre2_general_context *gcontext = (mcontext == NULL)?
(pcre2_general_context *)NULL:
(pcre2_general_context *)mcontext;
Please note, I am relatively a newbie in this, so please excuse me if the above
does not make any sense.
Thanks
--
You are receiving this mail because:
You are on the CC list for the bug.