Panic with invalid regex in header.get()
Closed this issue · 4 comments
nigoroll commented
Noticed coincidentally here varnishcache/varnish-cache#3489 (comment)
vtc diff:
diff --git a/src/tests/header/get.vtc b/src/tests/header/get.vtc
index 58ae74b..6218d0a 100644
--- a/src/tests/header/get.vtc
+++ b/src/tests/header/get.vtc
@@ -22,7 +22,7 @@ varnish v1 -vcl+backend {
header.dyn(beresp,"foo"),
"realcookie=");
} elsif (bereq.url == "/two") {
- set beresp.http.xusr = header.get(beresp.http.foo,"^realcookie=");
+ set beresp.http.xusr = header.get(beresp.http.foo,"^realcookie=(");
set beresp.http.dyn-xusr = header.get(
header.dyn(beresp,"foo"),
"^realcookie=");
panic:
*** v1 debug|Error: Child (10887) Panic at: Wed, 13 Jan 2021 17:44:25 GMT
*** v1 debug|Assert error in VRT_re_init(), cache/cache_vrt_re.c line 63:
*** v1 debug| Condition((t) != 0) not true.
*** v1 debug|version = varnish-trunk revision 4e6abff8df324c0c5428b1821a1caca7674a0aff, vrt api = 13.0
*** v1 debug|ident = Linux,4.9.0-14-amd64,x86_64,-jnone,-sdefault,-sdefault,-hcritbit,epoll
*** v1 debug|now = 33583.792575 (mono), 1610559865.147618 (real)
*** v1 debug|Backtrace:
*** v1 debug| 0x45acb0: varnishd() [0x45acb0]
*** v1 debug| 0x45aa52: varnishd() [0x45aa52]
*** v1 debug| 0x524285: varnishd(VAS_Fail+0x55) [0x524285]
*** v1 debug| 0x484737: varnishd(VRT_re_init+0x67) [0x484737]
*** v1 debug| 0x7fabe9df83af: ./vmod_cache/_vmod_header.fa22092b2507cba07abcab936e71dc8142261542e9aba70c026c449dedf70359(+0x13af)
[0x7fabe9df83af]
*** v1 debug| 0x7fabe9df85e7: ./vmod_cache/_vmod_header.fa22092b2507cba07abcab936e71dc8142261542e9aba70c026c449dedf70359(vmod_get+
0x37) [0x7fabe9df85e7]
*** v1 debug| 0x7fabec5fa40b: vcl_vcl1.1610559863.718375/vgc.so(VGC_function_vcl_backend_response+0x9b) [0x7fabec5fa40b]
*** v1 debug| 0x49602d: varnishd() [0x49602d]
*** v1 debug| 0x496598: varnishd(VCL_backend_response_method+0x208) [0x496598]
*** v1 debug| 0x43d151: varnishd() [0x43d151]
Due to varnishcache/varnish-cache#3489 this will probably have to be refactored anyway.
gquintard commented
Thank you @nigoroll . I think it's okay to wait until until varnishcache/varnish-cache#3489 is done (I assume it'll go in before the next VC release), so we can build upon it.
Objections?
dridi commented
You may want to fix this to have back-port for 6.0 before VCL_REGEX lands.
gquintard commented
true, 6.0 is going to be its own thing