regsub(all?) input limit
Christian Ruppert
idl0r at qasl.de
Thu Dec 3 13:12:53 CET 2015
Hi,
I just noticed that regsub and likely regsuball will just return the
untouched input string if it exceeds 57118 bytes. Is it intended to do
so, performance reasons perhaps?
In this case it's a custom error page with some (eye candy) embedded
images and in total a bit above the mentioned size. The regsub should
actually just replace a pattern with the XID, in this case simply
regsub(..., "bereq\.xid", bereq.xid).
I've also a test case:
VCL:
import std;
regsub(std.fileread("/etc/varnish/error.test"), "bereq\.xid",
server.hostname + "-" + bereq.xid)
File:
cat <<EOF >error.test
XID: bereq.xid
A e.g. custom error file that exceed a max. of 57118 bytes will be
completely
skipped by regsub()
someembeddedimage:$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w
56987 | head -n 1)
EOF
That can be reproduced with at least 4.0 and 4.1.
--
Regards,
Christian Ruppert
More information about the varnish-misc
mailing list