]> granicus.if.org Git - graphviz/commitdiff
Fix bug introduced with new expr - buffer size has to large enough or sfprintf fails
authorEmden Gansner <erg@research.att.com>
Mon, 7 May 2012 21:24:14 +0000 (17:24 -0400)
committerEmden Gansner <erg@research.att.com>
Mon, 7 May 2012 21:24:14 +0000 (17:24 -0400)
lib/expr/exeval.c

index d12eb47563e329029f0501b33da410f30dc8baed..38540b214a138c32831c68befc36dbb5cd389685 100644 (file)
@@ -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;