Thanks for the patch, it has been applied to master branch of libcgroup.
Jan
On 12/08/2015 04:53 PM, Nikola Forró wrote:
> If getgrnam or getpwuid functions failed, the program entered
> an infinite loop, because the rule pointer was never advanced.
> This is now fixed by updating the pointer before continuing
> to the next iteration.
> ---
> src/api.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/api.c b/src/api.c
> index d6c9d3a..ef796ac 100644
> --- a/src/api.c
> +++ b/src/api.c
> @@ -2775,13 +2775,17 @@ static struct cgroup_rule
> *cgroup_find_matching_rule_uid_gid(uid_t uid,
> /* Get the group data. */
> sp = &(rule->username[1]);
> grp = getgrnam(sp);
> - if (!grp)
> + if (!grp) {
> + rule = rule->next;
> continue;
> + }
>
> /* Get the data for UID. */
> usr = getpwuid(uid);
> - if (!usr)
> + if (!usr) {
> + rule = rule->next;
> continue;
> + }
>
> /* If UID is a member of group, we matched. */
> for (i = 0; grp->gr_mem[i]; i++) {
>
------------------------------------------------------------------------------
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel