[master] 87ab209 Volatile read of the VCL temperature

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Fri Sep 9 18:50:16 CEST 2016


commit 87ab209018ac3b6f18d29ba27de78e34a47bf03b
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Tue Aug 30 21:37:34 2016 +0200

    Volatile read of the VCL temperature
    
    There is currently no locking around temperature changes despite the
    fact that it may be read outside of the CLI thread to make decisions.
    
    In the case of a panic, instead of locking we simply make sure not to
    perform an incomplete read of the pointer.

diff --git a/bin/varnishd/cache/cache_vcl.c b/bin/varnishd/cache/cache_vcl.c
index e4daeea..a7ad58b 100644
--- a/bin/varnishd/cache/cache_vcl.c
+++ b/bin/varnishd/cache/cache_vcl.c
@@ -127,7 +127,7 @@ VCL_Panic(struct vsb *vsb, const struct vcl *vcl)
 	VSB_printf(vsb, "busy = %u\n", vcl->busy);
 	VSB_printf(vsb, "discard = %u,\n", vcl->discard);
 	VSB_printf(vsb, "state = %s,\n", vcl->state);
-	VSB_printf(vsb, "temp = %s,\n", vcl->temp);
+	VSB_printf(vsb, "temp = %s,\n", (const volatile char *)vcl->temp);
 	VSB_printf(vsb, "conf = {\n");
 	VSB_indent(vsb, 2);
 	if (vcl->conf == NULL) {



More information about the varnish-commit mailing list