From f2d5cf5005abf48aeaf4e7e8093aa49f32c76756 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 May 2006 06:01:26 +0000 Subject: [PATCH] * nis/nis_table.c (nis_list): Avoid clearing res twice before filling it for the first time. --- ChangeLog | 3 +++ nis/nis_table.c | 18 +++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5a0eb12..fc3bfaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-05-04 Ulrich Drepper + * nis/nis_table.c (nis_list): Avoid clearing res twice before + filling it for the first time. + * nis/nis_table.c (get_tablepath): Renamed from __get_tablepath. Adjust all callers. Free res object content before returning. diff --git a/nis/nis_table.c b/nis/nis_table.c index 1a7bf09..49a6303 100644 --- a/nis/nis_table.c +++ b/nis/nis_table.c @@ -167,7 +167,7 @@ nis_list (const_nis_name name, unsigned int flags, const void *userdata), const void *userdata) { - nis_result *res = calloc (1, sizeof (nis_result)); + nis_result *res = malloc (sizeof (nis_result)); ib_request *ibreq; int status; enum clnt_stat clnt_status; @@ -180,20 +180,24 @@ nis_list (const_nis_name name, unsigned int flags, char *tableptr; char *tablepath = NULL; int first_try = 0; /* Do we try the old binding at first ? */ + int errcode; if (res == NULL) return NULL; if (name == NULL) { + errcode = NIS_BADNAME; + err_out: + memset (res, '\0', sizeof (nis_result)); NIS_RES_STATUS (res) = NIS_BADNAME; return res; } if ((ibreq = __create_ib_request (name, flags)) == NULL) { - NIS_RES_STATUS (res) = NIS_BADNAME; - return res; + errcode = NIS_BADNAME; + goto err_out; } if ((flags & EXPAND_NAME) @@ -205,16 +209,16 @@ nis_list (const_nis_name name, unsigned int flags, if (names == NULL) { nis_free_request (ibreq); - NIS_RES_STATUS (res) = NIS_BADNAME; - return res; + errcode = NIS_BADNAME; + goto err_out; } ibreq->ibr_name = strdup (names[name_nr]); if (ibreq->ibr_name == NULL) { nis_freenames (names); nis_free_request (ibreq); - NIS_RES_STATUS (res) = NIS_NOMEMORY; - return res; + errcode = NIS_NOMEMORY; + goto err_out; } } else -- 2.7.4