Author: Nick Mathewson <ni...@to...>
Date: Thu, 20 Dec 2012 11:48:05 -0500
Subject: Avoid double-close on getsockname error in evutil_ersatz_socketpair
Commit: 0a822a640e11f76f8d7533042e8fb565da920934
Found by coverity; CID 739726
---
evutil.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/evutil.c b/evutil.c
index e17e5b8..1627809 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;
--
1.7.4.1
|