Hello.

Przy okazji debugowania bledu w obsludze grup w nss_ldap natknalem sie
na taki sam blad w PAM. Dla przykladu posluze sie modulem pam_limits.
Otoz jest sobie system z ustawionymi limitami w
/etc/security/limits.conf. Limity owe sa na grupy grupax, grupay, grupaz
gdzie grupax ma 7 czlonkow, grypay kilkudziesieciu, a grupaz kilka
tysiecy. PAM przelatujac odwolanie do pam_limits dochodzi w kodzie do
wywloania _pammodutil_getgrnam() znajdujacego sie w
modules/pammodutil/modutil_getgrnam.c:41. Wszystko dziala pieknie dla
wszystkich trzech grup jezeli nie jest zdefiniowane HAVE_GETGRNAM_R.
Jezeli natomiast uzywane jest getgrnam_r to wszystko pieknie zadziala
dla grupax i grupay, a nie zadziala dla grupaz. Powod: wywolanie
getgrnam_r (modutil_getgrnam.c:68) zwroci blad i ustawi errno na
"Numerical result out of range" - z testow mi wyszlo ze bufor podany w
parametrach wywolania byl za maly na pomieszczenie informacji o grupie
grupaz. Konczy sie to tym, ze dla duzych grup limity systemowe narzucane
przez PAM przy logowaniu itp mozna sobie w 4 litery wsadzic.

Jezeli jakis magik mialby pomysl jak to poprawic to bylbym niezmiernie
wdzieczny, bo przekompilowywanie PAM z wymuszeniem uzycia getgrnam()
jest bezsensowne.

M.
_______________________________________________
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym