From: Ivana Varekova Date: Thu, 21 May 2009 10:06:20 +0000 (+0200) Subject: Add cgroup_free_group_spec procedure X-Git-Tag: v0.34~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8279047b888cdc269c044d9ec5389def63620c9f;p=thirdparty%2Flibcgroup.git Add cgroup_free_group_spec procedure Add cgroup_free_group_spec procedure which free cgroups_group_spec variable. Signed-off-by: Ivana Varekova Signed-off-by: Dhaval Giani --- diff --git a/src/tools/tools-common.c b/src/tools/tools-common.c index b80ae3ca..db46f6e8 100644 --- a/src/tools/tools-common.c +++ b/src/tools/tools-common.c @@ -86,3 +86,30 @@ int parse_cgroup_spec(struct cgroup_group_spec *cdptr[], char *optarg) return 0; } + + +/** + * Free a single cgroup_group_spec structure + * <--->@param cl The structure to free from memory. + */ +void cgroup_free_group_spec(struct cgroup_group_spec *cl) +{ + /* Loop variable */ + int i = 0; + + /* Make sure our structure is not NULL, first. */ + if (!cl) { + cgroup_dbg("Warning: Attempted to free NULL rule.\n"); + return; + } + + /* We must free any used controller strings, too. */ + for (i = 0; i < CG_CONTROLLER_MAX; i++) { + if (cl->controllers[i]) + free(cl->controllers[i]); + } + + free(cl); +} + + diff --git a/src/tools/tools-common.h b/src/tools/tools-common.h index 34379730..65d87c76 100644 --- a/src/tools/tools-common.h +++ b/src/tools/tools-common.h @@ -50,5 +50,10 @@ struct cgroup_group_spec { */ int parse_cgroup_spec(struct cgroup_group_spec *cdptr[], char *optarg); +/** + * Free a single cgroup_group_spec structure. + * @param cl The structure to free from memory + */ +void cgroup_free_group_spec(struct cgroup_group_spec *cl); #endif /* TOOLS_COMMON */