aboutsummaryrefslogtreecommitdiff
path: root/lib/if2ip.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2013-02-13 13:18:43 +0100
committerDaniel Stenberg <daniel@haxx.se>2013-02-14 10:41:45 +0100
commit358c5c0745a4c47f910189095f3832163b4708c4 (patch)
tree7e605f952fc16496ce4a0b5583c258466948d8e2 /lib/if2ip.c
parentd821525cee3fb43f746fdebf6dcc2dd8daa2bb7f (diff)
strlcat: remove function
This function was only used twice, both in places where performance isn't crucial (socks + if2ip). Removing the use of this function removes the need to have our private version for systems without it == reduced amount of code. Also, in the SOCKS case it is clearly better to fail gracefully rather than to truncate the results. This work was triggered by a bug report on the strcal prototype in strequal.h. strlcat was added in commit db70cd28 in February 2001! Bug: http://curl.haxx.se/bug/view.cgi?id=1192 Reported by: Jeremy Huddleston
Diffstat (limited to 'lib/if2ip.c')
-rw-r--r--lib/if2ip.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/if2ip.c b/lib/if2ip.c
index 558e30f15..cc191201e 100644
--- a/lib/if2ip.c
+++ b/lib/if2ip.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -95,6 +95,7 @@ char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
curl_strequal(iface->ifa_name, interf)) {
void *addr;
char scope[12]="";
+ char ipstr[64];
#ifdef ENABLE_IPV6
if(af == AF_INET6) {
unsigned int scopeid = 0;
@@ -109,8 +110,9 @@ char *Curl_if2ip(int af, const char *interf, char *buf, int buf_size)
else
#endif
addr = &((struct sockaddr_in *)iface->ifa_addr)->sin_addr;
- ip = (char *) Curl_inet_ntop(af, addr, buf, buf_size);
- strlcat(buf, scope, buf_size);
+ ip = (char *) Curl_inet_ntop(af, addr, ipstr, sizeof(ipstr));
+ snprintf(buf, buf_size, "%s%s", ip, scope);
+ ip = buf;
break;
}
}