• Nils Goroll's avatar
    close a potential race which could cause an out-of-bounds array access · 9edb2b65
    Nils Goroll authored
    We're only holding a read lock on the director, but we're updating
    the nxt member concurrently. This should be acceptable as a performance
    tradeoff - the only consequence is that round-robin is not strictly
    going around - it may occasionally skip a backend or hand out the same
    multiple times in a row.
    
    the race is:
    
    	thread	code
    
    	A:	rr->nxt %= rr->vd->n_backend;
    	// rr->nxt == rr->vd->n_backend - 1
    	B:	rr->nxt++;
    	// rr->nxt == rr->vd->n_backend
    	A:	be = rr->vd->backend[nxt];
    	// BOOM
    
    should fix #2024
    9edb2b65
Name
Last commit
Last update
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Makefile.inc.phk Loading commit data...
Makefile.phk Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
config.phk Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...