From: Emden Gansner Date: Mon, 7 May 2012 21:24:14 +0000 (-0400) Subject: Fix bug introduced with new expr - buffer size has to large enough or sfprintf fails X-Git-Tag: LAST_LIBGRAPH~32^2~429 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=87ec2f0b966d66cd25306ab12e786dd3e603443d;p=graphviz Fix bug introduced with new expr - buffer size has to large enough or sfprintf fails --- diff --git a/lib/expr/exeval.c b/lib/expr/exeval.c index d12eb4756..38540b214 100644 --- a/lib/expr/exeval.c +++ b/lib/expr/exeval.c @@ -135,7 +135,7 @@ getdyn(Expr_t* ex, register Exnode_t* expr, void* env, Exassoc_t** assoc) if (expr->data.variable.index) { - char buf[9]; + char buf[2*(sizeof(key.integer))+1]; /* no. of hex chars needed plus null byte */ Extype_t key; char *keyname; @@ -155,7 +155,7 @@ getdyn(Expr_t* ex, register Exnode_t* expr, void* env, Exassoc_t** assoc) key = (*ex->disc->keyf) (ex, v, type, ex->disc); } else key.integer = v.integer; - sfsprintf(buf, sizeof(buf), "0x%I*x", sizeof(v.integer), key.integer); + sfsprintf(buf, sizeof(buf), "%I*x", sizeof(key.integer), key.integer); keyname = buf; } else keyname = v.string;