Index: bin/varnishtest/tests/r00801.vtc =================================================================== --- bin/varnishtest/tests/r00801.vtc (revisjon 0) +++ bin/varnishtest/tests/r00801.vtc (revisjon 5461) @@ -0,0 +1,24 @@ +# $Id$ + +test "Regression test for duplicate content-length in pass" + +server s1 { + rxreq + txresp \ + -hdr "Date: Mon, 25 Oct 2010 06:34:06 GMT" \ + -hdr "Content-length: 10xx" \ + -nolen -bodylen 10 +} -start + + +varnish v1 -vcl+backend { + sub vcl_recv { return (pass); } +} -start + +client c1 { + txreq + rxresp + expect resp.http.content-length == "10" +} -run + + Index: bin/varnishd/cache_fetch.c =================================================================== --- bin/varnishd/cache_fetch.c (revisjon 5460) +++ bin/varnishd/cache_fetch.c (revisjon 5461) @@ -552,9 +552,11 @@ assert(uu == sp->obj->len); } - if (mklen > 0) + if (mklen > 0) { + http_Unset(sp->obj->http, H_Content_Length); http_PrintfHeader(sp->wrk, sp->fd, sp->obj->http, "Content-Length: %u", sp->obj->len); + } if (http_HdrIs(hp, H_Connection, "close")) cls = 1;