summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoe Landers <jlanders@vmware.com>2009-06-15 17:37:40 -0700
committerPetr Baudis <pasky@suse.cz>2009-06-16 12:21:55 +0200
commit26330c1c489a2cb2ea775390c9a7a6302954f64c (patch)
tree07d9b4eb3aabcd28b9be1c28488f3dd018e7930a
parent4da50f4b075b4ed9c75f072e1e26deee720fb8bf (diff)
downloadglibc-26330c1c489a2cb2ea775390c9a7a6302954f64c.tar.gz
glibc-26330c1c489a2cb2ea775390c9a7a6302954f64c.tar.xz
glibc-26330c1c489a2cb2ea775390c9a7a6302954f64c.zip
Fix memory leak when batch-reading large NIS password maps.
Not the whole was traversed in the function to free all buffers.
BZ #10203
(cherry picked from commit 233a182b9ee2a48eddbb15f70af8bc24add24af3)
-rw-r--r--ChangeLog5
-rw-r--r--nis/nss_nis/nis-pwd.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f7ac9ecb4b..c999607cbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-06-15  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #10203]
+	* nis/nss_nis/nis-pwd.c (internal_nis_endpwent): Free all buffers,
+	not just the currently used one and those which follow.
+	Patch by Joe Landers <jlanders@vmware.com>.
+
 	[BZ #10196]
 	* libio/tst-fgetwc.c (do_test): Use de_DE.UTF-8 as locale name.
 	Patch by Bruce Dubbs <bdubbs@linuxfromscratch.org>.
diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
index 1b5206ad6d..fdc7dc9e1e 100644
--- a/nis/nss_nis/nis-pwd.c
+++ b/nis/nss_nis/nis-pwd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-1998,2001,2002,2003,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
 
@@ -116,7 +116,7 @@ internal_nis_endpwent (void)
       oldkeylen = 0;
     }
 
-  struct response_t *curr = intern.next;
+  struct response_t *curr = intern.start;
 
   while (curr != NULL)
     {