From: Joe Landers Date: Fri, 30 Oct 2009 02:59:59 +0000 (-0700) Subject: Fix error handling in NIS. X-Git-Tag: fedora/glibc-2.10.90-27~3^2~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c240c3a58f21d72982e74a485bd7c4900f188876;p=thirdparty%2Fglibc.git Fix error handling in NIS. A buffer was freed even though it wasn't allocated as expected. Do this only when !batch_read. --- diff --git a/ChangeLog b/ChangeLog index 81defae3f52..d2089f5e2c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-10-29 Ulrich Drepper + [BZ #10692] + * nis/nss_nis/nis-grp.c (internal_nis_getgrent_r): Don't free buffer + in error if batch_read. Patch by Joe Landers . + [BZ #10713] * nis/nss_nis/nis-grp.c (internal_nis_endgrent): Start freeing blocks from intern.start. Patch by Joe Landers . diff --git a/nis/nss_nis/nis-grp.c b/nis/nss_nis/nis-grp.c index 071d8a2a558..6ad30eb1bb5 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; }