Skip to content

Commit d1c2218

Browse files
committed
[listener] check setsockopts return codes
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
1 parent ba09898 commit d1c2218

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

libknet/listener.c

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,25 @@ int _listener_add(knet_handle_t knet_h, uint16_t host_id, uint8_t link_id)
7474
}
7575

7676
value = KNET_RING_RCVBUFF;
77-
setsockopt(listener->sock, SOL_SOCKET, SO_RCVBUFFORCE, &value, sizeof(value));
77+
if (setsockopt(listener->sock, SOL_SOCKET, SO_RCVBUFFORCE, &value, sizeof(value)) < 0) {
78+
savederrno = errno;
79+
err = -1;
80+
log_err(knet_h, KNET_SUB_LISTENER, "Unable to set listener receive buffer: %s",
81+
strerror(savederrno));
82+
goto exit_unlock;
83+
}
7884

7985
if (listener->address.ss_family == AF_INET6) {
8086
value = 1;
81-
setsockopt(listener->sock, IPPROTO_IPV6, IPV6_V6ONLY,
82-
&value, sizeof(value));
87+
if (setsockopt(listener->sock, IPPROTO_IPV6, IPV6_V6ONLY,
88+
&value, sizeof(value)) < 0) {
89+
savederrno = errno;
90+
err = -1;
91+
log_err(knet_h, KNET_SUB_LISTENER, "Unable to set listener IPv6 only: %s",
92+
strerror(savederrno));
93+
goto exit_unlock;
94+
95+
}
8396
}
8497

8598
if (_fdset_cloexec(listener->sock)) {

0 commit comments

Comments
 (0)