From 82107a8889f6920ff17cba68d5d3d5ef3eb0d1e9 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 19 Dec 2001 05:44:54 +0000 Subject: [PATCH] reference after free in error path. --- lib/isc/unix/socket.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index eebfa93848..584acd2250 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: socket.c,v 1.217 2001/11/30 01:59:46 gson Exp $ */ +/* $Id: socket.c,v 1.218 2001/12/19 05:44:54 marka Exp $ */ #include @@ -2246,14 +2246,14 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) { */ if (isc_thread_create(watcher, manager, &manager->watcher) != ISC_R_SUCCESS) { + (void)close(manager->pipe_fds[0]); + (void)close(manager->pipe_fds[1]); DESTROYLOCK(&manager->lock); isc_mem_put(mctx, manager, sizeof(*manager)); UNEXPECTED_ERROR(__FILE__, __LINE__, "isc_thread_create() %s", isc_msgcat_get(isc_msgcat, ISC_MSGSET_GENERAL, ISC_MSG_FAILED, "failed")); - (void)close(manager->pipe_fds[0]); - (void)close(manager->pipe_fds[1]); return (ISC_R_UNEXPECTED); } #endif /* ISC_PLATFORM_USETHREADS */