diff options
Diffstat (limited to '')
-rw-r--r-- | include/import/ist.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/include/import/ist.h b/include/import/ist.h index 16b8616..e4e1425 100644 --- a/include/import/ist.h +++ b/include/import/ist.h @@ -939,15 +939,12 @@ static inline void istfree(struct ist *ist) */ static inline struct ist istdup(const struct ist src) { - const size_t src_size = src.len; - - /* Allocate at least 1 byte to allow duplicating an empty string with - * malloc implementations that return NULL for a 0-size allocation. - */ - struct ist dst = istalloc(src_size ? src_size : 1); + /* Allocate 1 extra byte to add an extra \0 delimiter. */ + struct ist dst = istalloc(src.len + 1); if (isttest(dst)) { - istcpy(&dst, src, src_size); + istcpy(&dst, src, src.len); + dst.ptr[dst.len] = '\0'; } return dst; |