From b966ac6db39463e406a32bf6e3cc9c4facccc401 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Sat, 12 Sep 2020 20:20:53 -0700 Subject: [PATCH] fix resource leakage in gvpack This addresses the following Coverity warning: Error: RESOURCE_LEAK (CWE-772): [#def60] graphviz-2.40.1/cmd/tools/gvpack.c:239: alloc_fn: Storage is returned from allocation function "openFile". graphviz-2.40.1/cmd/tools/gvpack.c:124:5: alloc_fn: Storage is returned from allocation function "fopen". graphviz-2.40.1/cmd/tools/gvpack.c:124:5: var_assign: Assigning: "fp" = "fopen(name, mode)". graphviz-2.40.1/cmd/tools/gvpack.c:134:5: return_alloc: Returning allocated memory "fp". graphviz-2.40.1/cmd/tools/gvpack.c:239: var_assign: Assigning: "outfp" = storage returned from "openFile(optarg, "w")". graphviz-2.40.1/cmd/tools/gvpack.c:239: overwrite_var: Overwriting "outfp" in "outfp = openFile(optarg, "w")" leaks the storage that "outfp" points to. # 237| break; # 238| case 'o': # 239|-> outfp = openFile(optarg, "w"); # 240| break; # 241| case 'u': Related to #1464. --- cmd/tools/gvpack.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/tools/gvpack.c b/cmd/tools/gvpack.c index f2cd008b5..598d838bf 100644 --- a/cmd/tools/gvpack.c +++ b/cmd/tools/gvpack.c @@ -221,6 +221,8 @@ static void init(int argc, char *argv[], pack_info* pinfo) setUInt(&pinfo->margin, optarg); break; case 'o': + if (outfp != NULL) + fclose(outfp); outfp = openFile(optarg, "w"); break; case 'u': -- 2.40.0