From: Matthew Fernandez Date: Sun, 22 Jan 2023 18:48:50 +0000 (-0800) Subject: gv2gxl writeHdr: fix memory leak X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6be9ac423a47e305eee8d2c8545d56ca243873bc;p=graphviz gv2gxl writeHdr: fix memory leak Gitlab: #1950 --- diff --git a/cmd/tools/gv2gxl.c b/cmd/tools/gv2gxl.c index e28a1e9bd..dedcadf4f 100644 --- a/cmd/tools/gv2gxl.c +++ b/cmd/tools/gv2gxl.c @@ -443,7 +443,6 @@ writeHdr(gxlstate_t * stp, Agraph_t * g, FILE * gxlFile, int top) char *name; char *kind; char *uniqueName; - size_t len; Level++; stp->attrsNotWritten = AGATTRWF(g); @@ -456,9 +455,9 @@ writeHdr(gxlstate_t * stp, Agraph_t * g, FILE * gxlFile, int top) if (!top && agparent(g)) { /* this must be anonymous graph */ - len = strlen(name) + sizeof("N_"); - char *bp = gv_calloc(len, sizeof(bp[0])); - sprintf(bp, "N_%s", name); + agxbuf buf = {0}; + agxbprint(&buf, "N_%s", name); + char *bp = agxbuse(&buf); if (idexists(stp->idList, bp) || !legalGXLName(bp)) { bp = createNodeId(stp->idList); } else { @@ -468,6 +467,7 @@ writeHdr(gxlstate_t * stp, Agraph_t * g, FILE * gxlFile, int top) tabover(gxlFile); fprintf(gxlFile, "\n", bp); + agxbfree(&buf); Level++; } else { Tailport = agattr(g, AGEDGE, "tailport", NULL);