From: Ivana Hutarova Varekova Date: Thu, 18 Jul 2013 10:07:29 +0000 (+0200) Subject: fix template function to copy template groups properly X-Git-Tag: v0.41~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e58167b99007a04a83e78a2eff62c26e00f2ce2;p=thirdparty%2Flibcgroup.git fix template function to copy template groups properly This patch fixes cgroup_init_templates_cache and cgroup_reload_cached_templates functions. Their have to copy not only controllers and their structures but all variables (controller name, permissions and ownership) for templates. Signed-off-by: Ivana Hutarova Varekova Acked-by: Jan Safranek --- diff --git a/src/config.c b/src/config.c index f3ac4dd8..b2b8a135 100644 --- a/src/config.c +++ b/src/config.c @@ -1473,7 +1473,24 @@ int cgroup_reload_cached_templates(char *pathname) } for (i = 0; i < template_table_index; i++) { - cgroup_copy_cgroup(&config_template_table[i], &template_table[i]); + cgroup_copy_cgroup(&template_table[i], + &config_template_table[i]); + strcpy((template_table[i]).name, + (config_template_table[i]).name); + template_table[i].tasks_uid = + config_template_table[i].tasks_uid; + template_table[i].tasks_gid = + config_template_table[i].tasks_gid; + template_table[i].task_fperm = + config_template_table[i].task_fperm; + template_table[i].control_uid = + config_template_table[i].control_uid; + template_table[i].control_gid = + config_template_table[i].control_gid; + template_table[i].control_fperm = + config_template_table[i].control_fperm; + template_table[i].control_dperm = + config_template_table[i].control_dperm; } return ret; @@ -1511,7 +1528,24 @@ int cgroup_init_templates_cache(char *pathname) } for (i = 0; i < template_table_index; i++) { - cgroup_copy_cgroup(&config_template_table[i], &template_table[i]); + cgroup_copy_cgroup(&template_table[i], + &config_template_table[i]); + strcpy((template_table[i]).name, + (config_template_table[i]).name); + template_table[i].tasks_uid = + config_template_table[i].tasks_uid; + template_table[i].tasks_gid = + config_template_table[i].tasks_gid; + template_table[i].task_fperm = + config_template_table[i].task_fperm; + template_table[i].control_uid = + config_template_table[i].control_uid; + template_table[i].control_gid = + config_template_table[i].control_gid; + template_table[i].control_fperm = + config_template_table[i].control_fperm; + template_table[i].control_dperm = + config_template_table[i].control_dperm; } return ret;