util: add a safe version of strlen
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 20 Sep 2024 11:16:20 +0000 (21:16 +1000)
committerMarge Bot <emma+marge@anholt.net>
Mon, 30 Sep 2024 15:35:36 +0000 (15:35 +0000)
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1052>

src/quirks.c
src/util-strings.h

index 75c74c0bdcd90b1299a34d30f8e89f15abe36051..2bb37b4ff787676b7c52579ed6b7813b8de00860 100644 (file)
@@ -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';
index 85e9081dbb0af953521cf03adc43a2d464a3baf3..bc263f6c9a31775bda45ded1ef55da735b0faaf4 100644 (file)
@@ -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.