Message ID | 1306954194-2392-1-git-send-email-piastry@etersoft.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2011/6/1 Pavel Shilovsky <piastry@etersoft.ru>: > When we get into auth_unix_gid at the second time, groups_len > is not 0 and ngroups variable leave as 0. Then we use ngroups > in getgrouplist that fails in this case. This patch fixes it. > > Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> Sorry for the spam - wrong title!
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index df6b38f..dbe20e9 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -138,7 +138,7 @@ static void auth_unix_gid(FILE *f) static gid_t *groups = NULL; static int groups_len = 0; gid_t *more_groups; - int ngroups = 0; + int ngroups; int rv, i; char *cp; @@ -147,9 +147,11 @@ static void auth_unix_gid(FILE *f) if (!groups) return; - groups_len = ngroups = INITIAL_MANAGED_GROUPS; + groups_len = INITIAL_MANAGED_GROUPS; } + ngroups = groups_len; + if (readline(fileno(f), &lbuf, &lbuflen) != 1) return;
When we get into auth_unix_gid at the second time, groups_len is not 0 and ngroups variable leave as 0. Then we use ngroups in getgrouplist that fails in this case. This patch fixes it. Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> --- utils/mountd/cache.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)