From 0a822a640e11f76f8d7533042e8fb565da920934 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 20 Dec 2012 11:48:05 -0500 Subject: [PATCH] Avoid double-close on getsockname error in evutil_ersatz_socketpair Found by coverity; CID 739726 --- evutil.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evutil.c b/evutil.c index e17e5b8a..1627809d 100644 --- a/evutil.c +++ b/evutil.c @@ -259,7 +259,6 @@ evutil_ersatz_socketpair(int family, int type, int protocol, goto tidy_up_and_fail; if (size != sizeof(listen_addr)) goto abort_tidy_up_and_fail; - evutil_closesocket(listener); /* Now check we are talking to ourself by matching port and host on the two sockets. */ if (getsockname(connector, (struct sockaddr *) &connect_addr, &size) == -1) @@ -269,6 +268,7 @@ evutil_ersatz_socketpair(int family, int type, int protocol, || listen_addr.sin_addr.s_addr != connect_addr.sin_addr.s_addr || listen_addr.sin_port != connect_addr.sin_port) goto abort_tidy_up_and_fail; + evutil_closesocket(listener); fd[0] = connector; fd[1] = acceptor; -- 2.40.0