libmount: don't use setgroups at all()

It's probably good idea to call setgroups() to cleanup groups,
but it introduces a regression as some mount helpers depend on
supplementary groups like "network" etc.

Fixes: https://github.com/karelzak/util-linux/issues/1398
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2021-07-29 20:37:32 +02:00
parent 4763080701
commit 54cb0dd60c
1 changed files with 1 additions and 7 deletions

View File

@ -340,16 +340,10 @@ static inline size_t get_hostname_max(void)
static inline int drop_permissions(void)
{
gid_t newgid = getgid();
errno = 0;
/* drop supplementary groups */
if (geteuid() == 0 && setgroups(1, &newgid) != 0)
goto fail;
/* drop GID */
if (setgid(newgid) < 0)
if (setgid(getgid()) < 0)
goto fail;
/* drop UID */