From: Jan Safranek Date: Fri, 23 Sep 2011 11:53:06 +0000 (+0200) Subject: libcgroup: allow parsing to be called several times X-Git-Tag: v0.38~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5fae87a4172f214117b7ca54c15856bdfc708b3c;p=thirdparty%2Flibcgroup.git libcgroup: allow parsing to be called several times cgroup_parse_config() should properly initialize its global variables, so it can be called several times safely, i.e. several config files can be parsed in sequence. The call to cgroup_parse_config() *rewrites* previous result, it does not *add* new groups/mounts to global tables. Signed-off-by: Jan Safranek --- diff --git a/src/config.c b/src/config.c index 726affcb..38f8b925 100644 --- a/src/config.c +++ b/src/config.c @@ -749,7 +749,13 @@ static int cgroup_parse_config(const char *pathname) goto err; } + /* Clear all internal variables so this function can be called twice. */ init_cgroup_table(config_cgroup_table, MAX_CGROUPS); + memset(config_namespace_table, 0, sizeof(config_namespace_table)); + memset(config_mount_table, 0, sizeof(config_mount_table)); + config_table_index = 0; + namespace_table_index = 0; + cgroup_table_index = 0; /* * Parser calls longjmp() on really fatal error (like out-of-memory).