]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorAndreas Gustafsson <source@isc.org>
Tue, 22 Jan 2002 23:17:44 +0000 (23:17 +0000)
committerAndreas Gustafsson <source@isc.org>
Tue, 22 Jan 2002 23:17:44 +0000 (23:17 +0000)
reference after free in error path.

lib/isc/unix/socket.c

index 1885c132b880af418d1d99a4e1212ba0af5f9a82..19cf62a5317cf742cdc3c135c9300c6bafd38bf0 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: socket.c,v 1.207.2.5 2002/01/22 05:00:30 marka Exp $ */
+/* $Id: socket.c,v 1.207.2.6 2002/01/22 23:17:44 gson Exp $ */
 
 #include <config.h>
 
@@ -2252,14 +2252,14 @@ isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) {
         */
        if (isc_thread_create(watcher, manager, &manager->watcher) !=
            ISC_R_SUCCESS) {
+               close(manager->pipe_fds[0]);
+               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"));
-               close(manager->pipe_fds[0]);
-               close(manager->pipe_fds[1]);
                return (ISC_R_UNEXPECTED);
        }
 #endif /* ISC_PLATFORM_USETHREADS */