CLEANUP: protocol: intitialize all of the sockaddr when disconnecting
In issue #894, Coverity suspects uninitialized values for a socket's
address whose family is AF_UNSPEC but it doesn't know that the address
is not used in this case. It's not on a critical path and working around
it is trivial, let's fully declare the address. We're doing it for both
TCP and UDP, because the same principle appears at two places.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 2b5367b..be9a25a 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -769,10 +769,9 @@
*/
static int tcp_suspend_receiver(struct receiver *rx)
{
- struct sockaddr sa;
+ const struct sockaddr sa = { .sa_family = AF_UNSPEC };
int ret;
- sa.sa_family = AF_UNSPEC;
if (connect(rx->fd, &sa, sizeof(sa)) < 0)
goto check_already_done;
diff --git a/src/proto_udp.c b/src/proto_udp.c
index 13545ad..bebcfb3 100644
--- a/src/proto_udp.c
+++ b/src/proto_udp.c
@@ -225,14 +225,12 @@
*/
static int udp_resume_receiver(struct receiver *rx)
{
- struct sockaddr sa;
- socklen_t len = sizeof(sa);
+ const struct sockaddr sa = { .sa_family = AF_UNSPEC };
if (rx->fd < 0)
return 0;
- sa.sa_family = AF_UNSPEC;
- if (connect(rx->fd, &sa, len) < 0)
+ if (connect(rx->fd, &sa, sizeof(sa)) < 0)
return -1;
fd_want_recv(rx->fd);