From b015c0244bdf230f949b1ebcbbb23927a7bfe148 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 12 Sep 2017 13:29:32 +0200 Subject: [PATCH] tcp: tcp_connect - initialize bindip variable correctly, issue #4499 --- src/tcp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } } -- 2.47.2