X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Furi.c;h=e686f7c5d788b2676a49c9b4746c846a63fc5aba;hp=3581e307d33a0dfa5bdcb5932b0e5fb648b30114;hb=13083fa6d2130b0e2c4f5bb03c90b99d44564408;hpb=ca0306fd73be47fa061d309373269c41bb75958c diff --git a/src/common/uri.c b/src/common/uri.c index 3581e307d..e686f7c5d 100644 --- a/src/common/uri.c +++ b/src/common/uri.c @@ -16,6 +16,7 @@ */ #define _GNU_SOURCE +#include #include #include #include @@ -103,6 +104,11 @@ static int set_ip_address(const char *addr, int af, char *dst, size_t size) unsigned char buf[sizeof(struct in6_addr)]; struct hostent *record; + assert(addr); + assert(dst); + + memset(dst, 0, size); + /* Network protocol */ ret = inet_pton(af, addr, buf); if (ret < 1) { @@ -117,7 +123,10 @@ static int set_ip_address(const char *addr, int af, char *dst, size_t size) /* Translate IP to string */ (void) inet_ntop(af, record->h_addr_list[0], dst, size); } else { - memcpy(dst, addr, size); + if (size > 0) { + strncpy(dst, addr, size); + dst[size - 1] = '\0'; + } } DBG2("IP address resolved to %s", dst);