syscall getgroups() optimization
PATCH 1/1 syscall getgroups() optimization
On success, getgroups() returns the number of supplementary group IDs. So, we can swap real number group IDs.
Patch in the attachment.
Signature · 4 lines
Regards, Kirill A. Shutemov + Belarus, Minsk + Velesys LLC, http://www.velesys.com/ + ALT Linux Team, http://www.altlinux.com/
linux-user/syscall.c +2 -2
@@ -3741,7 +4144,7 @@ ret =get_errno (getgroups (gidsetsize, grouplist));if (!is_error (ret)) { target_grouplist =lock_user (arg2, gidsetsize *2 ,0 ); -for (i =0 ;i < gidsetsize; i++) +for (i =0 ;i < ret; i++) target_grouplist[i] =tswap16 (grouplist[i]);unlock_user (target_grouplist, arg2, gidsetsize *2 ); }
@@ -3873,7 +4276,7 @@ ret =get_errno (getgroups (gidsetsize, grouplist));if (!is_error (ret)) { target_grouplist =lock_user (arg2, gidsetsize *4 ,0 ); -for (i =0 ;i < gidsetsize; i++) +for (i =0 ;i < ret; i++) target_grouplist[i] =tswap32 (grouplist[i]);unlock_user (target_grouplist, arg2, gidsetsize *4 ); }
Quoted 4 lines · Kirill A. Shutemov
On success,
getgroups()returns the number of supplementary group IDs. So, we can swap real number group IDs.Patch in the attachment.
It's trivial. Can anybody commit?
Signature · 4 lines
Regards, Kirill A. Shutemov + Belarus, Minsk + Velesys LLC, http://www.velesys.com/ + ALT Linux Team, http://www.altlinux.com/