From 784798168972a40d89096288ca9756b4468e84a1 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 14 May 2004 21:13:22 -0700 Subject: [PATCH] Fix gidsetsize == 0 for real this time. We need to always allocate at least one indirect block pointer, since we always fill out blocks[0] even if we don't have any groups. --- kernel/sys.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/sys.c b/kernel/sys.c index f1592864a826a..ece6365b8c450 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1126,8 +1126,9 @@ struct group_info *groups_alloc(int gidsetsize) int i; nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK; - group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), - GFP_USER); + /* Make sure we always allocate at least one indirect block pointer */ + nblocks = nblocks ? : 1; + group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER); if (!group_info) return NULL; group_info->ngroups = gidsetsize; -- 2.53.0