diff --git a/src/db.c b/src/db.c index 4a1c7f8..0384ea7 100644 --- a/src/db.c +++ b/src/db.c @@ -15,7 +15,7 @@ struct node { _pure_ static inline size_t db_size(const uint8_t *a) { - return (a[0] ?: str_len((char *)a + 1)) + 1; + return (a[0] ?: str_len((char *)a + 1, 4096)) + 1; } _pure_ static inline size_t diff --git a/src/str.h b/src/str.h index b1197b0..302933d 100644 --- a/src/str.h +++ b/src/str.h @@ -24,12 +24,12 @@ str_cmp(const char *restrict sa, const char *restrict sb) } _pure_ static inline size_t -str_len(const char *restrict str) +str_len(const char *restrict str, size_t len) { if (!str) return 0; - return strlen(str); + return strnlen(str, len); } static inline size_t @@ -42,7 +42,7 @@ str_cat(char *dst, const char **src, size_t count, size_t dst_len) size_t p = 0; for (size_t i = 0; i < count; i++) { - size_t n = str_len(src[i]); + size_t n = str_len(src[i], dst_len - len); if (!n) continue;