From f2d5cf5005abf48aeaf4e7e8093aa49f32c76756 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 May 2006 06:01:26 +0000 Subject: * nis/nis_table.c (nis_list): Avoid clearing res twice before filling it for the first time. --- nis/nis_table.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'nis/nis_table.c') diff --git a/nis/nis_table.c b/nis/nis_table.c index 1a7bf094f0..49a630312a 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 -- cgit 1.4.1