summaryrefslogtreecommitdiff
path: root/databases/nss_ldap
diff options
context:
space:
mode:
authordrochner <drochner>2005-09-19 15:54:42 +0000
committerdrochner <drochner>2005-09-19 15:54:42 +0000
commit3d21ada1cb9b6363ef2a9c1431642cb45392f50c (patch)
tree04d54a6daad27bd326ba981e0f80f4552e5944b6 /databases/nss_ldap
parentec284355186592525cc94b7e72638327bad67261 (diff)
downloadpkgsrc-3d21ada1cb9b6363ef2a9c1431642cb45392f50c.tar.gz
on LDAP errors, restore the state of the group array
Diffstat (limited to 'databases/nss_ldap')
-rw-r--r--databases/nss_ldap/files/netbsd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/databases/nss_ldap/files/netbsd.c b/databases/nss_ldap/files/netbsd.c
index 06792f312e3..3568fb6e67c 100644
--- a/databases/nss_ldap/files/netbsd.c
+++ b/databases/nss_ldap/files/netbsd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd.c,v 1.3 2005/08/30 16:12:02 drochner Exp $ */
+/* $NetBSD: netbsd.c,v 1.4 2005/09/19 15:54:42 drochner Exp $ */
#include <sys/param.h>
#include <pwd.h>
@@ -453,6 +453,7 @@ netbsd_getgroupmembership(void *rv, void *cb_data, va_list ap)
int *size = va_arg(ap, int*);
gid_t *tmpgroups;
long int lstart, lsize;
+ int origsize = *size;
tmpgroups = malloc(limit * sizeof(gid_t));
if (!tmpgroups)
@@ -476,7 +477,8 @@ netbsd_getgroupmembership(void *rv, void *cb_data, va_list ap)
}
*size = lstart;
s = NSS_STATUS_NOTFOUND;
- }
+ } else
+ *size = origsize;
free(tmpgroups);
return nss2netbsderr[s];