diff options
Diffstat (limited to 'nis')
-rw-r--r-- | nis/nis_table.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/nis/nis_table.c b/nis/nis_table.c index f56b499..1a7bf09 100644 --- a/nis/nis_table.c +++ b/nis/nis_table.c @@ -129,7 +129,7 @@ __create_ib_request (const_nis_name name, unsigned int flags) static const struct timeval RPCTIMEOUT = {10, 0}; static char * -__get_tablepath (char *name, dir_binding *bptr) +get_tablepath (char *name, dir_binding *bptr) { enum clnt_stat result; nis_result res; @@ -152,7 +152,12 @@ __get_tablepath (char *name, dir_binding *bptr) else cptr = ""; - return strdup (cptr); + char *str = strdup (cptr); + + if (result == RPC_SUCCESS) + xdr_free ((xdrproc_t) _xdr_nis_result, (char *) &res); + + return str; } nis_result * @@ -335,7 +340,7 @@ nis_list (const_nis_name name, unsigned int flags, { if (tablepath == NULL) { - tablepath = __get_tablepath (ibreq->ibr_name, &bptr); + tablepath = get_tablepath (ibreq->ibr_name, &bptr); tableptr = tablepath; } if (tableptr == NULL) @@ -400,7 +405,7 @@ nis_list (const_nis_name name, unsigned int flags, { if (tablepath == NULL) { - tablepath = __get_tablepath (ibreq->ibr_name, &bptr); + tablepath = get_tablepath (ibreq->ibr_name, &bptr); tableptr = tablepath; } if (tableptr == NULL) |