From 0291c6ee6723896494ce389d33d540bf6391e46a Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 24 Apr 2013 22:01:03 +0200 Subject: [PATCH] Use separate result var for getnameinfo PAZ-863 --- src/getaddrinfo.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/getaddrinfo.c b/src/getaddrinfo.c index 1b09ad3..97a3c1e 100644 --- a/src/getaddrinfo.c +++ b/src/getaddrinfo.c @@ -69,7 +69,6 @@ void perform_getaddrinfo(struct work *w) { struct addrinfo hints, *res; char host[512], *cp; - char portbuf[512]; // very big ports char *port = 0; int error; @@ -87,8 +86,7 @@ void perform_getaddrinfo(struct work *w) if ((cp = strrchr(host, ':'))) { *cp = '\0'; - port = portbuf; - strncpy(port, cp + 1, sizeof(port)); + port = cp + 1; } error = getaddrinfo(host, port ? port : "210", &hints, &res); if (error) @@ -98,13 +96,14 @@ void perform_getaddrinfo(struct work *w) } else { + char n_host[512]; if (getnameinfo((struct sockaddr *) res->ai_addr, res->ai_addrlen, - host, sizeof(host)-1, + n_host, sizeof(n_host)-1, 0, 0, NI_NUMERICHOST) == 0) { - w->ipport = xmalloc(strlen(host) + (port ? strlen(port) : 0) + 2); - strcpy(w->ipport, host); + w->ipport = xmalloc(strlen(n_host) + (port ? strlen(port) : 0) + 2); + strcpy(w->ipport, n_host); if (port) { strcat(w->ipport, ":"); -- 1.7.10.4