diff options
author | Thomas Haller <thaller@redhat.com> | 2022-08-10 12:25:16 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-08-10 12:25:16 +0200 |
commit | 219dfea425e4c9f8b27c41ed2ef5a7465cd391d1 (patch) | |
tree | 2a710023a9e135849662a0b9ed0f038b8b459658 | |
parent | 1f5a05150a0fa3f5442f013fad1c8288cf984a68 (diff) | |
download | NetworkManager-219dfea425e4c9f8b27c41ed2ef5a7465cd391d1.tar.gz |
platform: make NMLOG_COMMON() macro safer by adding a do{}while(0) block
-rw-r--r-- | src/libnm-platform/nm-platform.c | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/libnm-platform/nm-platform.c b/src/libnm-platform/nm-platform.c index ab9664d2ee..161efbd8f8 100644 --- a/src/libnm-platform/nm-platform.c +++ b/src/libnm-platform/nm-platform.c @@ -115,24 +115,29 @@ nmp_link_address_get_as_bytes(const NMPLinkAddress *addr) #define _NMLOG_DOMAIN LOGD_PLATFORM #define _NMLOG_PREFIX_NAME "platform" -#define NMLOG_COMMON(level, name, ...) \ - char __prefix[32]; \ - const char *__p_prefix = _NMLOG_PREFIX_NAME; \ - const NMPlatform *const __self = (self); \ - const char *__name = name; \ - \ - if (__self && NM_PLATFORM_GET_PRIVATE(__self)->log_with_ptr) { \ - g_snprintf(__prefix, sizeof(__prefix), "%s[%p]", _NMLOG_PREFIX_NAME, __self); \ - __p_prefix = __prefix; \ - } \ - _nm_log(__level, \ - _NMLOG_DOMAIN, \ - 0, \ - __name, \ - NULL, \ - "%s: %s%s%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - __p_prefix, \ - NM_PRINT_FMT_QUOTED(__name, "(", __name, ") ", "") _NM_UTILS_MACRO_REST(__VA_ARGS__)); +#define NMLOG_COMMON(level, name, ...) \ + G_STMT_START \ + { \ + char __prefix[32]; \ + const char *__p_prefix = _NMLOG_PREFIX_NAME; \ + const NMPlatform *const __self = (self); \ + const char *__name = name; \ + \ + if (__self && NM_PLATFORM_GET_PRIVATE(__self)->log_with_ptr) { \ + g_snprintf(__prefix, sizeof(__prefix), "%s[%p]", _NMLOG_PREFIX_NAME, __self); \ + __p_prefix = __prefix; \ + } \ + _nm_log(__level, \ + _NMLOG_DOMAIN, \ + 0, \ + __name, \ + NULL, \ + "%s: %s%s%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + __p_prefix, \ + NM_PRINT_FMT_QUOTED(__name, "(", __name, ") ", "") \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + G_STMT_END #define _NMLOG(level, ...) \ G_STMT_START \ |