aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--nis/ypclnt.c36
2 files changed, 14 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 146af5d..21d8008 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2003-04-23 Ulrich Drepper <drepper@redhat.com>
+ * nis/ypclnt.c (__yp_bind): Expect ypdb parameter to always we !=
+ NULL. Remove code made redundant by this assumption.
+ (__yp_unbind): Add call to free. Adjust all callers.
+
* nis/ypclnt.c (yp_all): Free the dom_binding object after
unwinding it.
diff --git a/nis/ypclnt.c b/nis/ypclnt.c
index 0278dcf..b440106 100644
--- a/nis/ypclnt.c
+++ b/nis/ypclnt.c
@@ -66,15 +66,12 @@ __yp_bind (const char *domain, dom_binding **ypdb)
if (domain == NULL || domain[0] == '\0')
return YPERR_BADARGS;
- if (ypdb != NULL)
+ ysd = *ypdb;
+ while (ysd != NULL)
{
- ysd = *ypdb;
- while (ysd != NULL)
- {
- if (strcmp (domain, ysd->dom_domain) == 0)
- break;
- ysd = ysd->dom_pnext;
- }
+ if (strcmp (domain, ysd->dom_domain) == 0)
+ break;
+ ysd = ysd->dom_pnext;
}
if (ysd == NULL)
@@ -207,13 +204,8 @@ __yp_bind (const char *domain, dom_binding **ypdb)
if (is_new)
{
- if (ypdb != NULL)
- {
- ysd->dom_pnext = *ypdb;
- *ypdb = ysd;
- }
- else
- free (ysd);
+ ysd->dom_pnext = *ypdb;
+ *ypdb = ysd;
}
return YPERR_SUCCESS;
@@ -224,6 +216,7 @@ __yp_unbind (dom_binding *ydb)
{
clnt_destroy (ydb->dom_client);
ydb->dom_client = NULL;
+ free (ydb);
}
int
@@ -260,7 +253,6 @@ yp_unbind_locked (const char *indomain)
else
ydbptr2 = ydbptr->dom_pnext;
__yp_unbind (work);
- free (work);
break;
}
ydbptr2 = ydbptr;
@@ -340,10 +332,7 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
use_ypbindlist = FALSE;
}
else
- {
- __yp_unbind (ydb);
- free (ydb);
- }
+ __yp_unbind (ydb);
ydb = NULL;
status = YPERR_RPC;
@@ -360,11 +349,7 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
}
else
if (ydb != NULL)
- {
- __yp_unbind (ydb);
- free (ydb);
- ydb = NULL;
- }
+ __yp_unbind (ydb);
__set_errno (saved_errno);
@@ -715,7 +700,6 @@ 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);