From 435d5f3a30e278893c317f458765c977a895026f Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Sun, 19 Jul 2009 17:23:05 +0700 Subject: [PATCH 5/5] src/vzcfgscale.c(main): fixed possible memory leak. Found by cppcheck: [./src/vzcfgscale.c:311]: (possible error) Memory leak: in_file --- src/vzcfgscale.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/src/vzcfgscale.c b/src/vzcfgscale.c index 65a785d..065bf29 100644 --- a/src/vzcfgscale.c +++ b/src/vzcfgscale.c @@ -308,6 +308,7 @@ int main(int argc, char **argv) if (!stat(out_file, &st) && S_ISDIR(st.st_mode)) { printf("Error: output file %s is directory\n", out_file); + free(in_file); return 1; } if (all_k) @@ -320,6 +321,7 @@ int main(int argc, char **argv) if (ParseConfig(0, in_file, ¶m, 0)) { fprintf(stderr, "Unable open %s\n", in_file); + free(in_file); return 1; } scale(ubc_k, cpu_k, disk_k, net_k, ¶m); @@ -328,8 +330,10 @@ int main(int argc, char **argv) if (validate) { param.validatemode = strdup(STR_ACT_ERROR); - if (validate_ve(0, ¶m)) + if (validate_ve(0, ¶m)) { + free(in_file); return 1; + } } if ((veid = get_id(in_file))) { @@ -357,6 +361,7 @@ int main(int argc, char **argv) } if (out_file != NULL && !remove) cpfile(in_file, out_file); + free(in_file); if (SaveConfig(0, out_file, ¶m) == -1) return 1; if (!validate && param.class_id != NULL && *param.class_id == 1) -- 1.6.3.3