From: Paul Fertser Date: Wed, 17 Jan 2018 14:31:58 +0000 (+0300) Subject: server: add safeguards against printing bogus port number X-Git-Tag: v0.11.0-rc1~1255 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=f02327d85953152743dbb02d9ceeaa5b59da9ebe server: add safeguards against printing bogus port number Clang static checker emits "Assigned value is garbage or undefined" warning there as it can't prove that when the socket descriptor is AF_INET/SOCK_STREAM and getsockname doesn't return an error, sin_port is guaranteed to be filled in. Pacify it by obvious means. Change-Id: I43b5e5ceb41c07d523a81b34a25490c4c5f49a70 Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/4350 Tested-by: jenkins Reviewed-by: Tim Newsome Reviewed-by: Tomas Vanek --- diff --git a/src/server/server.c b/src/server/server.c index 1e52e979d7..46c860f4fe 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -300,10 +300,11 @@ int add_service(char *name, } struct sockaddr_in addr_in; + addr_in.sin_port = 0; socklen_t addr_in_size = sizeof(addr_in); - getsockname(c->fd, (struct sockaddr *)&addr_in, &addr_in_size); - LOG_INFO("Listening on port %hu for %s connections", - ntohs(addr_in.sin_port), name); + if (getsockname(c->fd, (struct sockaddr *)&addr_in, &addr_in_size) == 0) + LOG_INFO("Listening on port %hu for %s connections", + ntohs(addr_in.sin_port), name); } else if (c->type == CONNECTION_STDINOUT) { c->fd = fileno(stdin);