summaryrefslogtreecommitdiff
path: root/source/nsswitch
diff options
context:
space:
mode:
authorSATOH Fumiyasu <fumiyas@osstech.jp>2008-12-16 16:59:07 +0100
committerKarolin Seeger <kseeger@samba.org>2009-01-02 12:44:18 +0100
commit77259611c26145cf179fa706b863fdc13b16c264 (patch)
tree289cffb5e7dfbbcbd8ff57a4e3ca68661c4e55c0 /source/nsswitch
parent95afbc350b0a93af5e9c660f7f4dc08f13129295 (diff)
downloadsamba-77259611c26145cf179fa706b863fdc13b16c264.tar.gz
nss_winbind: Solaris 64-bit fix and...
PATCH 1: Fix gmem->numgids and gmem->maxgids breakage on Solaris 64-bit because sizeof(int) != sizeof(long int). PATCH 2: This patch fixes a compile-time warning "warning: implicit function declaration: _nss_winbind_initgroups_dyn". (cherry picked from commit cb036772d09227f870c2fec3ecd8c3f53787dfbc) (cherry picked from commit 085f4cdb90b12d60804001fd60659a4aa4a174fd)
Diffstat (limited to 'source/nsswitch')
-rw-r--r--source/nsswitch/winbind_nss_solaris.c9
-rw-r--r--source/nsswitch/winbind_nss_solaris.h3
2 files changed, 10 insertions, 2 deletions
diff --git a/source/nsswitch/winbind_nss_solaris.c b/source/nsswitch/winbind_nss_solaris.c
index 865b6ebbb06..05e037f0e8a 100644
--- a/source/nsswitch/winbind_nss_solaris.c
+++ b/source/nsswitch/winbind_nss_solaris.c
@@ -281,17 +281,22 @@ _nss_winbind_getgroupsbymember_solwrap(nss_backend_t* be, void* args)
{
int errnop;
struct nss_groupsbymem *gmem = (struct nss_groupsbymem *)args;
+ long int numgids = gmem->numgids;
+ long int maxgids = gmem->maxgids;
NSS_DEBUG("_nss_winbind_getgroupsbymember");
_nss_winbind_initgroups_dyn(gmem->username,
gmem->gid_array[0], /* Primary Group */
- &gmem->numgids,
- &gmem->maxgids,
+ &numgids,
+ &maxgids,
&gmem->gid_array,
gmem->maxgids,
&errnop);
+ gmem->numgids = numgids;
+ gmem->maxgids = maxgids;
+
/*
* If the maximum number of gids have been found, return
* SUCCESS so the switch engine will stop searching. Otherwise
diff --git a/source/nsswitch/winbind_nss_solaris.h b/source/nsswitch/winbind_nss_solaris.h
index 84062dbab4a..497ece95223 100644
--- a/source/nsswitch/winbind_nss_solaris.h
+++ b/source/nsswitch/winbind_nss_solaris.h
@@ -81,5 +81,8 @@ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
struct group *result, char *buffer,
size_t buflen, int *errnop);
+NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
+ long int *size, gid_t **groups,
+ long int limit, int *errnop);
#endif /* _WINBIND_NSS_SOLARIS_H */