summaryrefslogtreecommitdiff
path: root/shared
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-07-04 17:06:10 +0200
committerThomas Haller <thaller@redhat.com>2019-07-04 17:11:24 +0200
commitfe52a9467b1cdcd8a34a199aa229071c8ae6446a (patch)
tree1baca04699b0705abd5a1bee4fbafe6b031a1f0b /shared
parentc04526783756a336dba46251a113956bb8597f78 (diff)
downloadNetworkManager-fe52a9467b1cdcd8a34a199aa229071c8ae6446a.tar.gz
shared: gracefully accept %NULL strings for NM_STR_HAS_PREFIX() and NM_STR_HAS_SUFFIX()
In case it wasn't obvious to a caller, allow %NULL as valid string argument. Just be a bit more forgiving and fault-tolerant.
Diffstat (limited to 'shared')
-rw-r--r--shared/nm-glib-aux/nm-macros-internal.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/shared/nm-glib-aux/nm-macros-internal.h b/shared/nm-glib-aux/nm-macros-internal.h
index d2210db006..e76a3c251b 100644
--- a/shared/nm-glib-aux/nm-macros-internal.h
+++ b/shared/nm-glib-aux/nm-macros-internal.h
@@ -906,14 +906,19 @@ nm_streq0 (const char *s1, const char *s2)
}
#define NM_STR_HAS_PREFIX(str, prefix) \
- (strncmp ((str), ""prefix"", NM_STRLEN (prefix)) == 0)
+ ({ \
+ const char *const _str = (str); \
+ \
+ _str && (strncmp ((str), ""prefix"", NM_STRLEN (prefix)) == 0); \
+ })
#define NM_STR_HAS_SUFFIX(str, suffix) \
({ \
- const char *_str = (str); \
- gsize _l = strlen (_str); \
+ const char *_str; \
+ gsize _l; \
\
- ( (_l >= NM_STRLEN (suffix)) \
+ ( (_str = (str)) \
+ && ((_l = strlen (_str)) >= NM_STRLEN (suffix)) \
&& (memcmp (&_str[_l - NM_STRLEN (suffix)], \
""suffix"", \
NM_STRLEN (suffix)) == 0)); \