From fe52a9467b1cdcd8a34a199aa229071c8ae6446a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 4 Jul 2019 17:06:10 +0200 Subject: [PATCH] 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. --- shared/nm-glib-aux/nm-macros-internal.h | 13 +++++++++---- 1 file 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)); \