aboutsummaryrefslogtreecommitdiff
path: root/nis/nss_nis/nis-grp.c
diff options
context:
space:
mode:
authorJoe Landers <jlanders@vmware.com>2009-10-29 19:59:59 -0700
committerUlrich Drepper <drepper@redhat.com>2009-10-29 19:59:59 -0700
commitc240c3a58f21d72982e74a485bd7c4900f188876 (patch)
tree9fdc0318b9e6d1ee82df50901d1cac71606c5244 /nis/nss_nis/nis-grp.c
parent1a9e411e2aba14573ddc2ced4a5ee927a01031e0 (diff)
downloadglibc-c240c3a58f21d72982e74a485bd7c4900f188876.tar
glibc-c240c3a58f21d72982e74a485bd7c4900f188876.tar.gz
glibc-c240c3a58f21d72982e74a485bd7c4900f188876.tar.bz2
glibc-c240c3a58f21d72982e74a485bd7c4900f188876.zip
Fix error handling in NIS.
A buffer was freed even though it wasn't allocated as expected. Do this only when !batch_read.
Diffstat (limited to 'nis/nss_nis/nis-grp.c')
-rw-r--r--nis/nss_nis/nis-grp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/nis/nss_nis/nis-grp.c b/nis/nss_nis/nis-grp.c
index 071d8a2a55..6ad30eb1bb 100644
--- a/nis/nss_nis/nis-grp.c
+++ b/nis/nss_nis/nis-grp.c
@@ -204,7 +204,8 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen,
if (__builtin_expect ((size_t) (len + 1) > buflen, 0))
{
- free (result);
+ if (!batch_read)
+ free (result);
*errnop = ERANGE;
return NSS_STATUS_TRYAGAIN;
}