From 8dd719970a2c282fa7b1fbf485f2744557abc676 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 22 Nov 2004 18:41:05 +0000 Subject: [PATCH] (__nscd_getai): Avoid memory and file descriptor leaks. --- nscd/nscd_getai.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c index f0b2082..24b374b 100644 --- a/nscd/nscd_getai.c +++ b/nscd/nscd_getai.c @@ -104,7 +104,7 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) if (resultbuf == NULL) { *h_errnop = NETDB_INTERNAL; - return -1; + goto out_close; } /* Set up the data structure, including pointers. */ @@ -140,7 +140,10 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) if (resultbuf->canon != NULL && resultbuf->canon[ai_resp->canonlen - 1] != '\0') /* We cannot use the database. */ - goto out_close; + { + free (resultbuf); + goto out_close; + } retval = 0; *result = resultbuf; @@ -173,6 +176,7 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) mapped = NO_MAPPING; } + *result = NULL; free (resultbuf); goto retry; -- 2.7.4