From 47ae3942144cdf43f231a1f8b6b3720a427dbdeb Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 23 Apr 2003 22:06:25 +0000 Subject: Update. * nis/ypclnt.c (yp_all): Free the dom_binding object after unwinding it. --- ChangeLog | 3 +++ nis/ypclnt.c | 15 +++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6643aa3ff1..146af5d4b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2003-04-23 Ulrich Drepper + * nis/ypclnt.c (yp_all): Free the dom_binding object after + unwinding it. + * grp/initgroups.c (getgrouplist): Don't copy too much into the user buffer if more groups are found than fit into it. diff --git a/nis/ypclnt.c b/nis/ypclnt.c index 7123f636bf..0278dcf15d 100644 --- a/nis/ypclnt.c +++ b/nis/ypclnt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -205,10 +205,15 @@ __yp_bind (const char *domain, dom_binding **ypdb) return YPERR_YPSERV; } - if (is_new && ypdb != NULL) + if (is_new) { - ysd->dom_pnext = *ypdb; - *ypdb = ysd; + if (ypdb != NULL) + { + ysd->dom_pnext = *ypdb; + *ypdb = ysd; + } + else + free (ysd); } return YPERR_SUCCESS; @@ -710,6 +715,8 @@ yp_all (const char *indomain, const char *inmap, /* We don't need the UDP connection anymore. */ __yp_unbind (ydb); + free (ydb); + ydb = NULL; clnt = clnttcp_create (&clnt_sin, YPPROG, YPVERS, &clnt_sock, 0, 0); if (clnt == NULL) -- cgit v1.2.3