From: Jaroslav Kysela Date: Tue, 12 Sep 2017 11:29:32 +0000 (+0200) Subject: tcp: tcp_connect - initialize bindip variable correctly, issue #4499 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=be637ea734a02950fedc3a1292804c70df852623;p=thirdparty%2Ftvheadend.git tcp: tcp_connect - initialize bindip variable correctly, issue #4499 --- diff --git a/src/tcp.c b/src/tcp.c index 04c1998b0..ed057812f 100644 --- a/src/tcp.c +++ b/src/tcp.c @@ -85,6 +85,7 @@ tcp_connect(const char *hostname, int port, const char *bindaddr, errbuf[0] = '\0'; + memset(&bindip, 0, sizeof(bindip)); bindip.ss_family = AF_UNSPEC; if (bindaddr && bindaddr[0] != '\0') { if (tcp_get_ip_from_str(bindaddr, &bindip) == NULL) { @@ -135,9 +136,10 @@ again: if (bindip.ss_family != AF_UNSPEC) { if (bind(fd, (struct sockaddr *)&bindip, IP_IN_ADDRLEN(bindip)) < 0) { - snprintf(errbuf, errbufsize, "Cannot bind to IPv%s addr '%s'", + snprintf(errbuf, errbufsize, "Cannot bind to IPv%s addr '%s:%i': %s", bindip.ss_family == AF_INET6 ? "6" : "4", - bindaddr); + bindaddr, htons(IP_PORT(bindip)), + strerror(errno)); goto error; } }