From e1f16f33219b44f0a66af0da0a02d8e8781a24f6 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Wed, 1 Oct 2003 17:02:09 +0000 Subject: merge of parameter changes from 3.0 and fix for bug 550 (This used to be commit b6433f5db77a1d62309946c6f23c18c6c299d0c5) --- source3/lib/system.c | 8 +++++--- source3/lib/system_smbd.c | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'source3/lib') diff --git a/source3/lib/system.c b/source3/lib/system.c index b020a20373..2e95efec79 100644 --- a/source3/lib/system.c +++ b/source3/lib/system.c @@ -693,7 +693,6 @@ int sys_getgroups(int setlen, gid_t *gidset) #endif /* HAVE_BROKEN_GETGROUPS */ } -#ifdef HAVE_SETGROUPS /************************************************************************** Wrapper for setgroups. Deals with broken (int) case. Automatically used @@ -702,6 +701,11 @@ int sys_getgroups(int setlen, gid_t *gidset) int sys_setgroups(int setlen, gid_t *gidset) { +#if !defined(HAVE_SETGROUPS) + errno = ENOSYS; + return -1; +#endif /* HAVE_SETGROUPS */ + #if !defined(HAVE_BROKEN_GETGROUPS) return setgroups(setlen, gidset); #else @@ -742,8 +746,6 @@ int sys_setgroups(int setlen, gid_t *gidset) #endif /* HAVE_BROKEN_GETGROUPS */ } -#endif /* HAVE_SETGROUPS */ - /************************************************************************** Wrappers for setpwent(), getpwent() and endpwent() ****************************************************************************/ diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c index bcbc8c61e6..73c910e631 100644 --- a/source3/lib/system_smbd.c +++ b/source3/lib/system_smbd.c @@ -92,7 +92,7 @@ static int getgrouplist_internals(const char *user, gid_t gid, gid_t *groups, in restore_re_gid(); - if (setgroups(ngrp_saved, gids_saved) != 0) { + if (sys_setgroups(ngrp_saved, gids_saved) != 0) { /* yikes! */ DEBUG(0,("ERROR: getgrouplist: failed to reset group list!\n")); smb_panic("getgrouplist: failed to reset group list!\n"); -- cgit