[Varnish] #1566: escape sequence breaks regex
Varnish
varnish-bugs at varnish-cache.org
Wed Aug 6 16:07:42 CEST 2014
#1566: escape sequence breaks regex
------------------------+--------------------
Reporter: RWOverdijk | Type: defect
Status: new | Priority: normal
Milestone: | Component: build
Version: unknown | Severity: normal
Keywords: |
------------------------+--------------------
This replace (routine vcl_fetch) breaks varnish:
{{{
set req.url = regsuball(req.url, "\??(p|pi)=.*?(&|$)", "");
}}}
Here's the error:
{{{
varnishification at varisification:/etc/varnish$ sudo service varnish restart
* Stopping HTTP accelerator varnishd
[fail]
* Starting HTTP accelerator varnishd
[fail]
Message from C-compiler:
./vcl.3F4sQ4FV.c: In function ‘VGC_Init’:
./vcl.3F4sQ4FV.c:1264:28: error: trigraph ??( ignored, use -trigraphs to
enable [-Werror=trigraphs]
VRT_re_init(&VGC_re_3, "\\??(p|pi)=.*?(&|$)");
^
./vcl.3F4sQ4FV.c: At top level:
./vcl.3F4sQ4FV.c:1355:42: error: trigraph ??( ignored, use -trigraphs to
enable [-Werror=trigraphs]
" set req.url = regsuball(req.url, \"\\??(p|pi)=.*?(&|$)\", \"\");\n"
^
cc1: all warnings being treated as errors
Running C-compiler failed, exit 1
VCL compilation failed
}}}
In my opinion this is a bug. It's a string, and the official language
being communicated to users is VCL, not C. So, varnish should probably
escape this escape sequence.
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1566>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list