diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 7b24cf3237d8947d80e1e250c8e06489b0162bc1..f6081cb3fca3f6cc2244d0aca58ac94c09413c6e 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -955,6 +955,7 @@ static int write_topo_node(int fd, int node) } fclose(fp); + fp = NULL; ret = do_write(fd, &mem_total, sizeof(u64)); if (ret) @@ -981,7 +982,8 @@ static int write_topo_node(int fd, int node) ret = do_write_string(fd, buf); done: free(buf); - fclose(fp); + if (fp) + fclose(fp); return ret; }