[master] a7808f1 Don't attempt to dump bad WS structs
Poul-Henning Kamp
phk at varnish-cache.org
Mon Dec 9 17:43:22 CET 2013
commit a7808f14993a8a47bc98933cf1786467228bf761
Author: Poul-Henning Kamp <phk at varnish-cache.org>
Date: Mon Dec 9 17:42:43 2013 +0100
Don't attempt to dump bad WS structs
diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index 97775ae..8f8f8fd 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -109,22 +109,26 @@ pan_ws(const struct ws *ws, int indent)
{
VSB_printf(pan_vsp, "%*sws = %p {", indent, "", ws);
- if (WS_Overflowed(ws))
- VSB_printf(pan_vsp, " OVERFLOW");
- VSB_printf(pan_vsp, "\n%*sid = \"%s\",\n", indent + 2, "", ws->id);
- VSB_printf(pan_vsp, "%*s{s,f,r,e} = {%p", indent + 2, "", ws->s);
- if (ws->f > ws->s)
- VSB_printf(pan_vsp, ",+%ld", (long) (ws->f - ws->s));
- else
- VSB_printf(pan_vsp, ",%p", ws->f);
- if (ws->r > ws->s)
- VSB_printf(pan_vsp, ",+%ld", (long) (ws->r - ws->s));
- else
- VSB_printf(pan_vsp, ",%p", ws->r);
- if (ws->e > ws->s)
- VSB_printf(pan_vsp, ",+%ld", (long) (ws->e - ws->s));
- else
- VSB_printf(pan_vsp, ",%p", ws->e);
+ if (VALID_OBJ(ws, WS_MAGIC)) {
+ if (WS_Overflowed(ws))
+ VSB_printf(pan_vsp, " OVERFLOW");
+ VSB_printf(pan_vsp, "\n%*sid = \"%s\",\n", indent + 2, "", ws->id);
+ VSB_printf(pan_vsp, "%*s{s,f,r,e} = {%p", indent + 2, "", ws->s);
+ if (ws->f > ws->s)
+ VSB_printf(pan_vsp, ",+%ld", (long) (ws->f - ws->s));
+ else
+ VSB_printf(pan_vsp, ",%p", ws->f);
+ if (ws->r > ws->s)
+ VSB_printf(pan_vsp, ",+%ld", (long) (ws->r - ws->s));
+ else
+ VSB_printf(pan_vsp, ",%p", ws->r);
+ if (ws->e > ws->s)
+ VSB_printf(pan_vsp, ",+%ld", (long) (ws->e - ws->s));
+ else
+ VSB_printf(pan_vsp, ",%p", ws->e);
+ } else {
+ VSB_printf(pan_vsp, " BAD_MAGIC(0x%08x) ", ws->magic);
+ }
VSB_printf(pan_vsp, "},\n");
VSB_printf(pan_vsp, "%*s},\n", indent, "" );
}
More information about the varnish-commit
mailing list