[Privoxy-devel] PATCH for pcre2 support

Fabian Keil fk at fabiankeil.de
Tue Jun 27 18:19:24 CEST 2023


Gagan Sidhu <broly at mac.com> wrote on 2023-06-26 at 07:41:52:

> > On Jun 26, 2023, at 6:33 AM, Fabian Keil <fk at fabiankeil.de> wrote:

> > I'm now thinking we may have to use the pcre2_match() API
> > everywhere instead of using the POSIX interface (regexec() etc.).
> > 
> this does seem to be the only solution, and i think i’ll be busy
> this week but if i find the time, i will try that.

I looked into this and it seems to indeed work around the crashes.

One known downside is that:
   
 curl -v 'http://p.p/show-url-info?url=http%3A%2F%2Fl.yimg.com%2Fg%2Fcombo%2F1?event-custom%2Fevent-custom-min.js%26event%2Fevent-min.js%26j%2F.H-.K.A.vNKEa%26j%2F.CP-.U-.DE.A.vKEJz%26j%2F.J_.BR_.CA.A.vKYkg%26j%2F.J_.DB.A.vPpBT%26j%2Fpopup-login.A.vR53Z%26dump%2Fdump-min.js%26datatype%2Fdatatype-xml-min.js%26substitute%2Fsubstitute-min.js%26json%2Fjson-min.js%26queue-promote%2Fqueue-promote-min.js%26io%2Fio-min.js%26j%2F.J_.DS.A.vQa28%26j%2F.FW-.FX-.GH.A.vP3XB%26j%2Fgrease.A.vRktP%26j%2F.CC.A.vNiA6%26j%2F.C-.BL.A.vPPj2%26j%2F.CE-.K.A.vNy32%26attribute%2Fattribute-base-min.js%26base%2Fbase-min.js%26anim%2Fanim-min.js%26cookie%2Fcookie-min.js%26j%2F.B-.C-.F.A.vQ7SZ%26j%2Furls.A.vQtXp%26j%2F.B-.BY.A.vQCXP%26j%2F.H-.BY.A.vQXXx%26j%2F.DS-value-conversions.A.vQpRt%26j%2F.G-.BD.A.vNHSH%26event%2Fevent-synthetic-min.js%26j%2F.G-.BO.A.vNwR4%26j%2F.CV-.CH.A.vPFSZ%26j%2F.X-.W-.C-.F.A.vKPQa%26j%2F.X-.W-.D.A.vQXXx%26j%2F.Q-.BX-.K.A.vR1kt%26j%2F.DL.A.vLPjD%26j%2F.CF.A.vNC24%26j%2F.CX-.CY.A.vP8ND%26event-simulate%2Fevent-simulate-min.js%26node%2Fnode-event-simulate-min.js%26j%2F.B-.T-.CI-.C-.F.A.vPJPF%26j%2F.CM%2F.BA_2.5.1-.D.A.vPzui%26j%2Fbo-.S-.C-.F.A.vNwWe%26j%2Fbo-.S-.D.A.vR6Hx%26j%2F.BZ-.D.A.vNstB%26j%2F.B-.L-.C-.F.A.vNxPX%26j%2F.B-.L-.BH.A.vMdVB%26j%2F.CN-.DD.A.vLjJ2%26j%2F.B-.O-.C-.F.A.vPpcK%26j%2F.BM.A.vKPmz%26j%2F.B-.O.A.vQyHg%26j%2F.B-.H-.BB-.C-.F.A.vQvrB%26j%2F.CW-.CU.A.vQ7Rg%26j%2F.Y-.C-.F.A.vNqGa%26j%2F.Y.A.vLKiT%26j%2F.B-.M-.C-.F.A.vQxDc%26j%2F.U-.CG.A.vQ5Tt%26j%2F.B-.M.A.vQXXx%26j%2F.B-.Q-.BQ.A.vQvTt%26j%2F.B-.N-.C-.F.A.vQaRp%26j%2F.CL.A.vN4N6%26j%2F.B-.CL-.BW.A.vPwkx%26j%2F.DR-.DG.A.vMLJr%26j%2F.B-.BE-.C-.F.A.vPHP4%26j%2F.B-.BE-.D.A.vQLQH%26j%2F.BV.A.vm3Uz%26j%2F.Z-.DK-.D.A.vLQEe%26j%2F.Z-.DJ-.BJ.A.vLQEe%26j%2F.B-.I-.C-.F.A.vPKTK%26stylesheet%2Fstylesheet-min.js%26j%2F.B-.I.A.vQvDF%26j%2F.CM-.DO.A.vPboD%26j%2F.B-.D.A.vRbv8%26j%2F.B-.H-.BB.A.vQuhn%26j%2F.B-.N.A.vR6Cn%26j%2F.B-.L-.CZ.A.vQmzP%26j%2F.B-.T-.CI.A.vQXXx%26j%2F.B-.I-.CQ-.BK-.C-.F.A.vNwZF%26j%2F.B-.I-.CQ-.BK.A.vLWQR%26j%2F.B-.R-.C-.F.A.vPfwi%26j%2F.B-.R.A.vRhND%26j%2F.DN-.BB-.D-.C-.F.A.vQXZg%26j%2F.DN-.BB-.D.A.vRcXB%26j%2F.BF_.D-.C-.F.A.vPGYM%26j%2F.BF_.D.A.vQxJn%26plugin%2Fplugin-min.js%26cache%2Fcache-min.js%26j%2F.CB-.C-.F.A.vNwWe%26j%2F.CB-.D.A.vQS6T'
    
... now takes ~41 seconds on my system when using valgrind
(but still less than 1 second without it).

The patch set I'm currently testing is available at:
<https://www.fabiankeil.de/sourcecode/privoxy/privoxy-pcre2-support-wip-2023-06-27.diff>

Fabian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.privoxy.org/pipermail/privoxy-devel/attachments/20230627/116cd41e/attachment.bin>


More information about the Privoxy-devel mailing list