mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 16:21:06 +00:00
Fix memory leak in NIS grp database handling.
This commit is contained in:
parent
cc88b371a5
commit
1a9e411e2a
@ -1,5 +1,9 @@
|
||||
2009-10-29 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #10713]
|
||||
* nis/nss_nis/nis-grp.c (internal_nis_endgrent): Start freeing blocks
|
||||
from intern.start. Patch by Joe Landers <jlanders@vmware.com>.
|
||||
|
||||
[BZ #10780]
|
||||
* libio/ioputs.c (_IO_puts): Make sure to not return a number which
|
||||
overflows the int return type.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996-1999, 2001-2004, 2006 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996-1999,2001-2004,2006,2009 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||
|
||||
@ -55,7 +55,7 @@ internal_nis_endgrent (void)
|
||||
oldkeylen = 0;
|
||||
}
|
||||
|
||||
struct response_t *curr = intern.next;
|
||||
struct response_t *curr = intern.start;
|
||||
|
||||
while (curr != NULL)
|
||||
{
|
||||
@ -203,16 +203,16 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen,
|
||||
}
|
||||
|
||||
if (__builtin_expect ((size_t) (len + 1) > buflen, 0))
|
||||
{
|
||||
free (result);
|
||||
*errnop = ERANGE;
|
||||
return NSS_STATUS_TRYAGAIN;
|
||||
}
|
||||
{
|
||||
free (result);
|
||||
*errnop = ERANGE;
|
||||
return NSS_STATUS_TRYAGAIN;
|
||||
}
|
||||
|
||||
char *p = strncpy (buffer, result, len);
|
||||
buffer[len] = '\0';
|
||||
while (isspace (*p))
|
||||
++p;
|
||||
++p;
|
||||
if (!batch_read)
|
||||
free (result);
|
||||
|
||||
@ -280,7 +280,7 @@ _nss_nis_getgrnam_r (const char *name, struct group *grp,
|
||||
enum nss_status retval = yperr2nss (yperr);
|
||||
|
||||
if (retval == NSS_STATUS_TRYAGAIN)
|
||||
*errnop = errno;
|
||||
*errnop = errno;
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -329,7 +329,7 @@ _nss_nis_getgrgid_r (gid_t gid, struct group *grp,
|
||||
enum nss_status retval = yperr2nss (yperr);
|
||||
|
||||
if (retval == NSS_STATUS_TRYAGAIN)
|
||||
*errnop = errno;
|
||||
*errnop = errno;
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user