Patch for NIS memory leak
H.J. Lu
hjl@varesearch.com
Tue May 4 19:20:00 GMT 1999
Hi,
This patch patch fixes some, not all, memory leaks in NIS code. The
problem shows up on the NFS server when
1. There is
hosts: files nisplus nis dns
in /etc/nsswitch.conf.
2. Run NIS, not NIS+.
3. /etc/hosts doesn't have the NFS clint IP address.
4. NIS doesn't have the NFS client IP address.
5. DNS has the NFS clint IP address.
6. nscd is not running.
The result is the size of mountd from knfsd 1.2.2a will grow each time
when the NFS client does mount and umount.
Thorsten, could you please take a close look at my patch and other
possible memory leaks?
Thanks.
H.J.
----
Tue May 4 18:38:22 1999 H.J. Lu <hjl@gnu.org>
* nis/nis_table.c (nis_list): Fix some meory leaks.
diff -u -p -r1.1.1.15 nis_table.c
--- nis/nis_table.c 1999/05/05 01:35:26 1.1.1.15
+++ nis/nis_table.c 1999/05/05 01:37:01
@@ -186,6 +186,7 @@ nis_list (const_nis_name name, unsigned
ibreq->ibr_name = NULL;
if (names == NULL)
{
+ nis_free_request (ibreq);
NIS_RES_STATUS (res) = NIS_BADNAME;
return res;
}
@@ -209,6 +210,7 @@ nis_list (const_nis_name name, unsigned
status = __nisfind_server (ibreq->ibr_name, &dir);
if (status != NIS_SUCCESS)
{
+ nis_free_request (ibreq);
NIS_RES_STATUS (res) = status;
return res;
}
@@ -227,6 +229,7 @@ nis_list (const_nis_name name, unsigned
{
__nisbind_destroy (&bptr);
nis_free_directory (dir);
+ nis_free_request (ibreq);
NIS_RES_STATUS (res) = NIS_NAMEUNREACHABLE;
return res;
}
More information about the Libc-hacker
mailing list