diff options
author | Joe Landers <jlanders@vmware.com> | 2009-10-29 19:59:59 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-10-29 19:59:59 -0700 |
commit | c240c3a58f21d72982e74a485bd7c4900f188876 (patch) | |
tree | 9fdc0318b9e6d1ee82df50901d1cac71606c5244 /nis/nss_nis/nis-grp.c | |
parent | 1a9e411e2aba14573ddc2ced4a5ee927a01031e0 (diff) | |
download | glibc-c240c3a58f21d72982e74a485bd7c4900f188876.tar.gz glibc-c240c3a58f21d72982e74a485bd7c4900f188876.tar.xz 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.c | 3 |
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; } |