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 <[email protected]>
---
utils/mountd/cache.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
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;
--
1.7.4.5
2011/6/1 Pavel Shilovsky <[email protected]>:
> 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 <[email protected]>
Sorry for the spam - wrong title!
--
Best regards,
Pavel Shilovsky.