lua: pwd: fix passwd and group traversal
CentOS 6 and FreeBSD 12 implementations of getpwuid() rewind setpwent()-{getpwent()}-endpwent() loop to a start that leads to a hang during pwd.getpwall() invoke. The same is true for a getgrgid() call during setgrent()-{getgrent()}-endgrent() loop. The commit modifies pwd module to avoid getpwuid() calls during passwd database traversal and to avoid getgrgid() calls when traversing groups. The commit also fixes the important regression on CentOS 6 after f5d8331e ('lua: workaround pwd.getpwall() issue on Fedora 29'): tarantool hungs during startup due to added getpwall() call. This made tarantool unusable on CentOS 6 at all. Aside of that the commit fixes another pwd.getgrall() problem: the function gaves password entries instead of group entries. Fixes #4428. Fixes #4447. Part of #4271.
Loading
Please register or sign in to comment