⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.184
Server IP:
65.21.180.239
Server:
Linux gowhm.eplangoweb.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.0.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
src
/
glibc
/
debian
/
patches
/
kfreebsd
/
View File Name :
local-initgroups-order.diff
setgroups(size, groups) changes egid on kfreebsd, precisely groups[0] is the new egid initgroups(user, gid) prepares the "groups" list via internal_getgrouplist(). It puts supplied gid as the first entry in all but NSCD cases. Fix the remaining NSCD case, see #698102, #699593. --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -145,15 +145,23 @@ } /* Check whether GROUP is part of the mix. If not, add it. */ + /* The GROUP have to be in the first entry */ if (retval >= 0) { int cnt; + gid_t sg, tg; + sg = group; for (cnt = 0; cnt < retval; ++cnt) - if ((*groupsp)[cnt] == group) + { + tg = (*groupsp)[cnt]; + (*groupsp)[cnt] = sg; + if (tg == group) break; + sg = tg; + } if (cnt == retval) - (*groupsp)[retval++] = group; + (*groupsp)[retval++] = sg; } out_close: