diff --git a/src/quirks.c b/src/quirks.c index 75c74c0b..2bb37b4f 100644 --- a/src/quirks.c +++ b/src/quirks.c @@ -1314,7 +1314,7 @@ match_fill_uniq(struct match *m, str++; m->uniq = safe_strdup(str); - slen = strlen(m->uniq); + slen = safe_strlen(m->uniq); if (slen > 1 && m->uniq[slen - 1] == '"') m->uniq[slen - 1] = '\0'; diff --git a/src/util-strings.h b/src/util-strings.h index 85e9081d..bc263f6c 100644 --- a/src/util-strings.h +++ b/src/util-strings.h @@ -99,6 +99,15 @@ safe_strdup(const char *str) return s; } +/** + * NULL-safe version of strlen + */ +static inline size_t +safe_strlen(const char *str) +{ + return str ? strlen(str) : 0; +} + /** * Simple wrapper for asprintf that ensures the passed in-pointer is set * to NULL upon error.