[Varnish] #763: problem with invalid Headers

Varnish varnish-bugs at varnish-cache.org
Wed Aug 25 04:37:42 CEST 2010

#763: problem with invalid Headers
 Reporter:  danielpicolli  |       Owner:  phk                
     Type:  defect         |      Status:  new                
 Priority:  high           |   Milestone:  Varnish 2.1 release
Component:  varnishd       |     Version:  trunk              
 Severity:  major          |    Keywords:                     

 I found a little mistake in on cache_vary.c that caused a huge crash on
 varnish. We have 10 dual quad-core servers using varnish with about 14
 backends, one of these backends has been configured with wrong Vary
 header, something like " Vary:: Accept-Encoding", yes, with two ":",
 someone set it wrong and all of the varnish servers crashed. :-)

 The problem can be reproduced with nginx as backend:

 add_header Vary: Accept-Encoding;

 (i know, this is a mistake, but mistakes happen in production) :-)

 On the first request for the wrong object, varnish crashed.

 Analyzing the cache_vary.c, i found the code that causing this problem:

 line 123 of cache_vary.c

  xxxassert(*q == ',');

 i thought this patch attached would fix the problem, i did many tests, and
 had good results.

 I would like to know your opinion.

 ps: attached patch and strace.

 Daniel Biazus

Ticket URL: <http://varnish-cache.org/ticket/763>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list