From 58549382d02320e5d13bd57a16e33c39dc648848 Mon Sep 17 00:00:00 2001 From: GangCao Date: Wed, 14 Dec 2022 01:51:02 -0500 Subject: [PATCH] lib/jsonrpc: check the return value from setsockopt Change-Id: I47c0635dcc53e28a8c7cfa85416b42c6475a3b65 Signed-off-by: GangCao Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15915 Tested-by: SPDK CI Jenkins Reviewed-by: Konrad Sztyber Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Community-CI: Mellanox Build Bot --- lib/jsonrpc/jsonrpc_server_tcp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/jsonrpc/jsonrpc_server_tcp.c b/lib/jsonrpc/jsonrpc_server_tcp.c index 21dbc0e1d..56b659b45 100644 --- a/lib/jsonrpc/jsonrpc_server_tcp.c +++ b/lib/jsonrpc/jsonrpc_server_tcp.c @@ -37,7 +37,13 @@ spdk_jsonrpc_server_listen(int domain, int protocol, } val = 1; - setsockopt(server->sockfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)); + rc = setsockopt(server->sockfd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)); + if (rc != 0) { + SPDK_ERRLOG("could not set SO_REUSEADDR sock option: %s\n", spdk_strerror(errno)); + close(server->sockfd); + free(server); + return NULL; + } rc = bind(server->sockfd, listen_addr, addrlen); if (rc != 0) {