From: Jan Safranek Date: Tue, 16 Nov 2010 11:11:14 +0000 (+0100) Subject: Fix memory leaks in cgreate X-Git-Tag: v0.37~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5bab7b22200c7d14d52ce60161ed2fe7a968fa4;p=thirdparty%2Flibcgroup.git Fix memory leaks in cgreate Fix few memory leaks in cgcreate tools, as pointed out by Steve Grub. Signed-off-by: Jan Safranek Acked-by: Dhaval Giani Signed-off-by: Dhaval Giani --- diff --git a/src/tools/cgcreate.c b/src/tools/cgcreate.c index 8a728ed1..a2a21b2b 100644 --- a/src/tools/cgcreate.c +++ b/src/tools/cgcreate.c @@ -138,7 +138,8 @@ int main(int argc, char *argv[]) cgroup_list = calloc(capacity, sizeof(struct cgroup_group_spec *)); if (cgroup_list == NULL) { fprintf(stderr, "%s: out of memory\n", argv[0]); - return -1; + ret = -1; + goto err; } /* parse arguments */ @@ -147,7 +148,8 @@ int main(int argc, char *argv[]) switch (c) { case 'h': usage(0, argv[0]); - return 0; + ret = 0; + goto err; case 'a': /* set admin uid/gid */ if (optarg[0] == ':') @@ -166,7 +168,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: " "can't find uid of user %s.\n", argv[0], pwd_string); - return -1; + ret = -1; + goto err; } } if (grp_string != NULL) { @@ -177,7 +180,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: " "can't find gid of group %s.\n", argv[0], grp_string); - return -1; + ret = -1; + goto err; } } @@ -200,7 +204,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: " "can't find uid of user %s.\n", argv[0], pwd_string); - return -1; + ret = -1; + goto err; } } if (grp_string != NULL) { @@ -211,7 +216,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: " "can't find gid of group %s.\n", argv[0], grp_string); - return -1; + ret = -1; + goto err; } } break; @@ -222,7 +228,8 @@ int main(int argc, char *argv[]) "cgroup controller and path" "parsing failed (%s)\n", argv[0], argv[optind]); - return -1; + ret = -1; + goto err; } break; case 'd': @@ -235,8 +242,8 @@ int main(int argc, char *argv[]) break; default: usage(1, argv[0]); - return -1; - break; + ret = -1; + goto err; } }