diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/share/safe_str.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/share/safe_str.h b/include/share/safe_str.h index eb974c51..6709334e 100644 --- a/include/share/safe_str.h +++ b/include/share/safe_str.h @@ -46,7 +46,9 @@ safe_strncat(char *dest, const char *src, size_t dest_size) if (dest_size < 1) return dest; + /* Assume dist has space for a term character .. */ ret = strncat(dest, src, dest_size - strlen (dest)); + /* .. but set it explicitly. */ dest [dest_size - 1] = 0; return ret; @@ -60,7 +62,7 @@ safe_strncpy(char *dest, const char *src, size_t dest_size) if (dest_size < 1) return dest; - ret = strncpy(dest, src, dest_size); + ret = strncpy(dest, src, dest_size - 1); dest [dest_size - 1] = 0; return ret; |