mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-11 13:24:43 -04:00
Avoid double-close on getsockname error in evutil_ersatz_socketpair
Found by coverity; CID 739726
This commit is contained in:
parent
69db2610be
commit
0a822a640e
2
evutil.c
2
evutil.c
@ -259,7 +259,6 @@ evutil_ersatz_socketpair(int family, int type, int protocol,
|
|||||||
goto tidy_up_and_fail;
|
goto tidy_up_and_fail;
|
||||||
if (size != sizeof(listen_addr))
|
if (size != sizeof(listen_addr))
|
||||||
goto abort_tidy_up_and_fail;
|
goto abort_tidy_up_and_fail;
|
||||||
evutil_closesocket(listener);
|
|
||||||
/* Now check we are talking to ourself by matching port and host on the
|
/* Now check we are talking to ourself by matching port and host on the
|
||||||
two sockets. */
|
two sockets. */
|
||||||
if (getsockname(connector, (struct sockaddr *) &connect_addr, &size) == -1)
|
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_addr.s_addr != connect_addr.sin_addr.s_addr
|
||||||
|| listen_addr.sin_port != connect_addr.sin_port)
|
|| listen_addr.sin_port != connect_addr.sin_port)
|
||||||
goto abort_tidy_up_and_fail;
|
goto abort_tidy_up_and_fail;
|
||||||
|
evutil_closesocket(listener);
|
||||||
fd[0] = connector;
|
fd[0] = connector;
|
||||||
fd[1] = acceptor;
|
fd[1] = acceptor;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user