summaryrefslogtreecommitdiff
path: root/listener.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-07-26 10:39:05 -0400
committerNick Mathewson <nickm@torproject.org>2012-07-26 10:39:05 -0400
commita0912e32068621eb776d678224e4108511d281e3 (patch)
tree3fa35fe1f6a29a1e3990b65ac5c39fe90f50305f /listener.c
parenta1a0e675318da89f2b13eb65a1f8cab601123bf9 (diff)
downloadlibevent-a0912e32068621eb776d678224e4108511d281e3.tar.gz
Check more setsockopt return values when binding sockets. Found by coverity
Diffstat (limited to 'listener.c')
-rw-r--r--listener.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/listener.c b/listener.c
index 9941e1d8..a78ca0d6 100644
--- a/listener.c
+++ b/listener.c
@@ -226,9 +226,15 @@ evconnlistener_new_bind(struct event_base *base, evconnlistener_cb cb,
}
}
- setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void*)&on, sizeof(on));
+ if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void*)&on, sizeof(on))<0) {
+ evutil_closesocket(fd);
+ return NULL;
+ }
if (flags & LEV_OPT_REUSEABLE) {
- evutil_make_listen_socket_reuseable(fd);
+ if (evutil_make_listen_socket_reuseable(fd) < 0) {
+ evutil_closesocket(fd);
+ return NULL;
+ }
}
if (sa) {