[master] 43757b25c varnishncsa: handle inexistent fields
Nils Goroll
nils.goroll at uplex.de
Tue Dec 15 09:05:09 UTC 2020
commit 43757b25cf1f0a3f005471c182165de099c6bbf3
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Tue Dec 15 09:57:53 2020 +0100
varnishncsa: handle inexistent fields
fixes #3485
diff --git a/bin/varnishncsa/varnishncsa.c b/bin/varnishncsa/varnishncsa.c
index 520ea6dfb..9e2fc22d4 100644
--- a/bin/varnishncsa/varnishncsa.c
+++ b/bin/varnishncsa/varnishncsa.c
@@ -797,7 +797,8 @@ frag_fields(int force, const char *b, const char *e, ...)
n++;
}
assert(p != NULL && q != NULL);
- assert(p < e && q > p);
+ if (p >= e || q <= p)
+ continue;
if (frag->gen != CTX.gen || force) {
/* We only grab the same matching field once */
frag->gen = CTX.gen;
diff --git a/bin/varnishtest/tests/u00003.vtc b/bin/varnishtest/tests/u00003.vtc
index e6dac92f1..680b1fa7a 100644
--- a/bin/varnishtest/tests/u00003.vtc
+++ b/bin/varnishtest/tests/u00003.vtc
@@ -142,12 +142,12 @@ shell -match {^\d+.\d{6} miss miss c 1001 quuz
%{Varnish:vxid}x %{VCL_Log:quux}x"}
# %{VSL:..}x
-shell -match {^req (\d+) rxreq \1 \d{10}\.\d{6} (\d+\.\d{6}) \d+\.\d{6} \2 -
-req (\d+) rxreq \3 \d{10}\.\d{6} (\d+\.\d{6}) \d+\.\d{6} \4 -
-req (\d+) rxreq \5 - - -$} \
+shell -match {^req (\d+) rxreq \1 \d{10}\.\d{6} (\d+\.\d{6}) \d+\.\d{6} \2 - -
+req (\d+) rxreq \3 \d{10}\.\d{6} (\d+\.\d{6}) \d+\.\d{6} \4 - -
+req (\d+) rxreq \5 - - - -$} \
{varnishncsa -n ${v1_name} -d -F "%{VSL:Begin}x \
%{VSL:Begin[2]}x %{VSL:Timestamp:Resp}x \
-%{VSL:Timestamp:Resp[2]}x %{VSL:Timestamp:foo}x"}
+%{VSL:Timestamp:Resp[2]}x %{VSL:Timestamp:foo}x %{VSL:ReqURL[2]}x"}
process p1 -stop -screen-dump
process p1 -expect-text 1 0 {/1?foo=bar HTTP/1.1" 200 100 "-" "-"}
More information about the varnish-commit
mailing list