Re: [PATCH] kernel/groups.c: consider about NULL for 'group_info'in all related extern functions

From: Chen Gang
Date: Thu Sep 26 2013 - 01:59:58 EST

On 09/25/2013 12:34 PM, Chen Gang wrote:
> On 09/25/2013 09:47 AM, Chen Gang wrote:
>> On 09/25/2013 09:14 AM, Tejun Heo wrote:
>>> On Wed, Sep 25, 2013 at 09:06:52AM +0800, Chen Gang wrote:
>>>> OK, I see, the 'root cause' is: "you are not the related maintainer
>>>> either", so it is really necessary for me to spend additional time
>>>> resource on it :-(.
>>> Yeah, at least partly. That and the fact that I'm not too willing to
>>> dig into the code without further evidence. It isn't anything strange
>>> to ask tho and I'm likely to do that even for subsystems that I know
>>> intimately if the subject code has been stable / stale for years and
>>> the analysis doesn't seem immediately convincing. And, if my
>>> experience is anything to go by, it's not too unlikely that you might
>>> hit something which doesn't agree with your current assumptions while
>>> trying to actually trigger the problem.
>>> Thanks.

Oh, not cause issue, the reason is "'groups' exports extern variable
'init_groups', when start process, default 'cred' will set it to be
sure of groups always be initialized".

Hmm... but after all, I still think this file need be improved: "remove
the group_info checking in groups_search()", please help check, thanks.

-------------------------------patch begin------------------------------

kernel/groups.c: remove useless "!group_info" checking in groups_search().

Since groups_free() need not check 'group_info', groups_search() need
not, either, and then in_group_p() and in_egroup_p(), either.

'groups' assumes kernel mode callers are sure of 'group_info' valid.

When process starts, the related kernel mode caller need set default
'group_info' firstly (extern variable 'init_group').

If groups_alloc() fails, the caller must not call any related API again
with the related invalid 'group_info'.

Signed-off-by: Chen Gang <gang.chen@xxxxxxxxxxx>
kernel/groups.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/kernel/groups.c b/kernel/groups.c
index 90cf1c3..0a7f81d 100644
--- a/kernel/groups.c
+++ b/kernel/groups.c
@@ -136,9 +136,6 @@ int groups_search(const struct group_info *group_info, kgid_t grp)
unsigned int left, right;

- if (!group_info)
- return 0;
left = 0;
right = group_info->ngroups;
while (left < right) {

-------------------------------patch end--------------------------------

> Excuse me, I have to do some urgent internal things within my company,
> so the test and confirmation may be delayed (I will try to finish test
> within this month: 2013-09-30).
>> Excuse me, my English is not quite well, I do not quite understand what
>> you said (but it seems what you said is reasonable, and not need reply).
>> Thanks.

Chen Gang
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at