diff --git a/src/util-strings.c b/src/util-strings.c index 41c1d95..6e6140a 100644 --- a/src/util-strings.c +++ b/src/util-strings.c @@ -150,11 +150,17 @@ strv_join(char **strv, const char *joiner) slen += (count - 1) * strlen(joiner); str = xalloc(slen + 1); /* trailing \0 */ + size_t jlen = strlen(joiner); + size_t offset = 0; for (s = strv; *s; s++) { - strcat(str, *s); + size_t l = strlen(*s); + memcpy(str + offset, *s, l); + offset += l; --count; - if (count > 0) - strcat(str, joiner); + if (count > 0) { + memcpy(str + offset, joiner, jlen); + offset += jlen; + } } return str;