[Privoxy-devel] PATCH for pcre2 support

Gagan Sidhu broly at mac.com
Thu Mar 9 15:36:25 CET 2023


hi fabian,

i also noticed i was not freeing this new struct pcre2_matches which may also cause problems.

i have now inserted the free calls where the original matches structure is being freed.

i also use a new variable, pcre2_matches_dummy, to create a new pcre2_match_data structure of the new size.

the only issue may be that we cannot simply memcpy the original contents the way i have done, i,e:

> memcpy(pcre2_matches_dummy,pcre2_matches,pcre2_get_match_data_size(pcre2_matches));
 
but i will leave that up to the readers. i don’t see, 
	-theoretically, why this would be an issue.
		-the type of the source and destination is the same, but it’s possible we need to iterate through.

new sha256 should be
> a2e39358ce779561c6599b4809e82ae3914965ea165c93368abd80c31af03799


i hope this fixes things instead of making them worse. :P

Thanks,
Gagan

> On Mar 9, 2023, at 7:03 AM, Gagan Sidhu <broly at mac.com> wrote:
> 
> that sum looks right.
> 
> and re name: i sure can, and i just did.
> 
> i personally do not use privoxy, but i know others do.
> 
> re: cgi issue: i think it’s possible this is caused when the matches exceed the initial size.
> 
> that is, in this portion of the code:
> 
>>         max_matches = (int)(max_matches * PCRS_MAX_MATCH_GROW);
>> 
>>         if (NULL == (dummy = (pcrs_match *)realloc(matches, (size_t)max_matches * sizeof(pcrs_match))))
> 
> because the pcre2_match_data structure would also need to be resized, and i haven’t done that yet because i just realised this :P
> 
> problem is, i don’t know if it’s that simple because we are using the pcre2 library’s allocation.
> 
> or does the CGI not use the pcrs_execute function?
> 
> Thanks,
> Gagan
> 
>> On Mar 9, 2023, at 6:17 AM, Fabian Keil <fk at fabiankeil.de> wrote:
>> 
>> Gagan Sidhu <broly at mac.com> wrote on 2023-03-09 at 06:09:50:
>> 
>>> yes i just updated that exact patch (deleted, reuploaded) and it should now be:
>>> 
>>> 106592f5e18ded8f6516d98522b9bbfd10185e40  shitty_pcre2.patch
>>> 
>>> i suspect, or hope, this will fix the cgi issue, just because of how i ignored the usage of the dummy variable in the first patch.
>>> 
>>> if it works, the other two warnings need to be fixed by changing the declarations of the variables passed to the function itself.
>> 
>> I now get:
>> 
>> fk at t520 ~/git/privoxy $sha256 shitty_pcre2.patch 
>> SHA256 (shitty_pcre2.patch) = 10eb42d03de0ccfdee4a4593f2848ca7193b30bcb8547febc0b7ff8d9f8766a7
>> 
>> and the CGI issue still exists.
>> 
>> Can you please upload the patch with a different name?
>> 
>> Fabian
> 



More information about the Privoxy-devel mailing list