On 10/25/2010 12:27 PM, Ivana Hutarova Varekova wrote:
> 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]>

Acked-By: Jan Safranek <[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


------------------------------------------------------------------------------
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

Reply via email to