diff --git a/src/nb_dns.c b/src/nb_dns.c index f8d939b4ab..106740bb61 100644 --- a/src/nb_dns.c +++ b/src/nb_dns.c @@ -411,7 +411,7 @@ _nb_dns_mkquery(register struct nb_dns_info *nd, register const char *name, return (-1); } memset(ne, 0, sizeof(*ne)); - strncpy(ne->name, name, sizeof(ne->name)); + strncpy(ne->name, name, sizeof(ne->name) - 1); ne->name[sizeof(ne->name) - 1] = '\0'; ne->qtype = qtype; ne->atype = atype; diff --git a/src/util.cc b/src/util.cc index cbd635d5a2..da056aba4f 100644 --- a/src/util.cc +++ b/src/util.cc @@ -623,7 +623,7 @@ char* uitoa_n(uint64_t value, char* str, int n, int base, const char* prefix) if ( prefix ) { - strncpy(str, prefix, n); + strncpy(str, prefix, n-1); str[n-1] = '\0'; i += strlen(prefix); } diff --git a/src/util.h b/src/util.h index d5b147abe6..e3c8f9c616 100644 --- a/src/util.h +++ b/src/util.h @@ -512,7 +512,7 @@ inline void* safe_malloc(size_t size) inline char* safe_strncpy(char* dest, const char* src, size_t n) { - char* result = strncpy(dest, src, n); + char* result = strncpy(dest, src, n-1); dest[n-1] = '\0'; return result; }