cgpconfigparser changes the permissions of all files. That's why to test
whether the variable file is writable, there have to be used the variable file
from the root group.
CHANGELOG:
* add the information why root group is used for finding which variable
is writable
Signed-off-by: Ivana Hutarova Varekova<[email protected]>
---
src/tools/cgsnapshot.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/tools/cgsnapshot.c b/src/tools/cgsnapshot.c
index a593f91..f347b39 100644
--- a/src/tools/cgsnapshot.c
+++ b/src/tools/cgsnapshot.c
@@ -273,7 +273,7 @@ static int display_permissions(const char *path,
static int display_cgroup_data(struct cgroup *group,
char controller[CG_CONTROLLER_MAX][FILENAME_MAX],
- const char *group_path, int first,
+ const char *group_path, int root_path_len, int first,
const char *program_name)
{
int i = 0, j;
@@ -315,8 +315,14 @@ static int display_cgroup_data(struct cgroup *group,
for (j = 0; j < nr_var; j++) {
name = cgroup_get_value_name(group_controller, j);
- /* test whether the variable file is writable */
- strncpy(var_path, group_path, FILENAME_MAX);
+ /* For the non-root groups cgconfigparser set
+ permissions of variable files to 777. Thus
+ It is necessary to test the permissions of
+ variable files in the root group to find out
+ whether the variable is writable.
+ */
+ strncpy(var_path, group_path, root_path_len);
+ var_path[root_path_len] = '\0';
strncat(var_path, "/", FILENAME_MAX);
var_path[FILENAME_MAX-1] = '\0';
strncat(var_path, name, FILENAME_MAX);
@@ -450,7 +456,7 @@ static int display_controller_data(
}
display_cgroup_data(group, controller, info.full_path,
- first, program_name);
+ prefix_len, first, program_name);
first = 0;
}
}
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel