diff options
author | SATOH Fumiyasu <fumiyas@osstech.jp> | 2008-12-16 16:59:07 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-12-16 17:04:02 +0100 |
commit | 9cf2c45aa7e3880909277ac5c083675adf48cfb3 (patch) | |
tree | afe418663d5e567a8980c5793d1197174232a131 /nsswitch | |
parent | b09d2edf26f1713e015920dddaacc6212f1f779a (diff) | |
download | samba-9cf2c45aa7e3880909277ac5c083675adf48cfb3.tar.gz samba-9cf2c45aa7e3880909277ac5c083675adf48cfb3.tar.bz2 samba-9cf2c45aa7e3880909277ac5c083675adf48cfb3.zip |
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)
Diffstat (limited to 'nsswitch')
-rw-r--r-- | nsswitch/winbind_nss_solaris.c | 9 | ||||
-rw-r--r-- | nsswitch/winbind_nss_solaris.h | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/nsswitch/winbind_nss_solaris.c b/nsswitch/winbind_nss_solaris.c index 4c85bd3621..5fb37643ce 100644 --- a/nsswitch/winbind_nss_solaris.c +++ b/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/nsswitch/winbind_nss_solaris.h b/nsswitch/winbind_nss_solaris.h index c6cadefc38..f805542f75 100644 --- a/nsswitch/winbind_nss_solaris.h +++ b/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 */ |