diff options
author | Thomas Haller <thaller@redhat.com> | 2019-07-04 17:06:10 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-07-04 17:11:24 +0200 |
commit | fe52a9467b1cdcd8a34a199aa229071c8ae6446a (patch) | |
tree | 1baca04699b0705abd5a1bee4fbafe6b031a1f0b | |
parent | c04526783756a336dba46251a113956bb8597f78 (diff) | |
download | NetworkManager-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.
-rw-r--r-- | shared/nm-glib-aux/nm-macros-internal.h | 13 |
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)); \ |