diff options
Diffstat (limited to 'arch/ia64/ia32/sys_ia32.c')
| -rw-r--r-- | arch/ia64/ia32/sys_ia32.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index 2445a9d3488e..16ef61a91d95 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c @@ -1767,25 +1767,24 @@ groups16_from_user(struct group_info *group_info, short __user *grouplist)  asmlinkage long  sys32_getgroups16 (int gidsetsize, short __user *grouplist)  { +	const struct cred *cred = current_cred();  	int i;  	if (gidsetsize < 0)  		return -EINVAL; -	get_group_info(current->cred->group_info); -	i = current->cred->group_info->ngroups; +	i = cred->group_info->ngroups;  	if (gidsetsize) {  		if (i > gidsetsize) {  			i = -EINVAL;  			goto out;  		} -		if (groups16_to_user(grouplist, current->cred->group_info)) { +		if (groups16_to_user(grouplist, cred->group_info)) {  			i = -EFAULT;  			goto out;  		}  	}  out: -	put_group_info(current->cred->group_info);  	return i;  } |