From 0659c5d2f3e7653668838a2162ec72efb67ca68e Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Wed, 1 Aug 2018 12:43:08 +0200 Subject: socket: check return code of setsockopt the return code of the last setsockopt() call in osmo_sock_init() is not checked. Since all other calls to setsockopt are checked, lets check this one as well. - check return code of setsockopt() and close the socket on failure Change-Id: I96dbccc3bcff35bf39979dbe0c44aadc8ce20c83 --- src/socket.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/socket.c') diff --git a/src/socket.c b/src/socket.c index dc5590c0..0a4e34cd 100644 --- a/src/socket.c +++ b/src/socket.c @@ -373,7 +373,14 @@ int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto, return -ENODEV; } - setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); + rc = setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); + if (rc < 0) { + LOGP(DLGLOBAL, LOGL_ERROR, + "cannot setsockopt socket: %s:%u: %s\n", host, port, + strerror(errno)); + close(sfd); + sfd = -1; + } rc = osmo_sock_init_tail(sfd, type, flags); if (rc < 0) { -- cgit v1.2.3