From 7a031eef5d91adb2c34dd63ce4f503be730ad8c7 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 23 Jan 2024 10:13:25 +0100 Subject: [PATCH] libnm: avoid "-Wnonnull-compare warnings with "static" array declarator With a static array, we indicate that the argument must not be NULL. Gcc-14.0.1-0.2.fc40 now warns against that: CC src/libnm-base/libnm_base_la-nm-base.lo In file included from ../src/libnm-std-aux/nm-default-std.h:102, from ../src/libnm-glib-aux/nm-default-glib.h:11, from ../src/libnm-glib-aux/nm-default-glib-i18n-lib.h:13, from ../src/libnm-base/nm-base.c:3: ../src/libnm-base/nm-base.c: In function 'nm_net_devname_infiniband': ../src/libnm-std-aux/nm-std-aux.h:191:12: error: 'nonnull' argument 'name' compared to NULL [-Werror=nonnull-compare] 191 | if (expr) \ | ^ ../src/libnm-std-aux/nm-std-aux.h:202:27: note: in expansion of macro '_NM_BOOLEAN_EXPR_IMPL' 202 | _NM_BOOLEAN_EXPR_IMPL(NM_UNIQ, expr)) | ^~~~~~~~~~~~~~~~~~~~~ ../src/libnm-glib-aux/nm-macros-internal.h:1693:31: note: in expansion of macro 'NM_BOOLEAN_EXPR' 1693 | #define _G_BOOLEAN_EXPR(expr) NM_BOOLEAN_EXPR(expr) | ^~~~~~~~~~~~~~~ /usr/include/glib-2.0/glib/gmacros.h:1244:43: note: in expansion of macro '_G_BOOLEAN_EXPR' 1244 | #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1)) | ^~~~~~~~~~~~~~~ /usr/include/glib-2.0/glib/gmessages.h:656:9: note: in expansion of macro 'G_LIKELY' 656 | if (G_LIKELY (expr)) \ | ^~~~~~~~ ../src/libnm-base/nm-base.c:57:5: note: in expansion of macro 'g_return_val_if_fail' 57 | g_return_val_if_fail(name, NULL); | ^~~~~~~~~~~~~~~~~~~~ ../src/libnm-core-impl/nm-setting-wireguard.c: In function '_nm_wireguard_peer_set_public_key_bin': ../src/libnm-core-impl/nm-setting-wireguard.c:316:8: error: 'nonnull' argument 'public_key' compared to NULL [-Werror=nonnull-compare] 316 | if (!public_key) | ^ Convert these checks to an nm_assert() to suppress the warning. --- src/libnm-base/nm-base.c | 3 ++- src/libnm-core-impl/nm-setting-wireguard.c | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libnm-base/nm-base.c b/src/libnm-base/nm-base.c index 6e164908a..54d89e1f3 100644 --- a/src/libnm-base/nm-base.c +++ b/src/libnm-base/nm-base.c @@ -54,7 +54,8 @@ nm_dhcp_iaid_from_hexstr(const char *str, guint32 *out_value) const char * nm_net_devname_infiniband(char name[static NM_IFNAMSIZ], const char *parent_name, int p_key) { - g_return_val_if_fail(name, NULL); + nm_assert(name); + g_return_val_if_fail(parent_name && parent_name[0], NULL); g_return_val_if_fail(strlen(parent_name) < NM_IFNAMSIZ, NULL); diff --git a/src/libnm-core-impl/nm-setting-wireguard.c b/src/libnm-core-impl/nm-setting-wireguard.c index 1e7ed05b1..c313d22c2 100644 --- a/src/libnm-core-impl/nm-setting-wireguard.c +++ b/src/libnm-core-impl/nm-setting-wireguard.c @@ -311,10 +311,9 @@ _nm_wireguard_peer_set_public_key_bin(NMWireGuardPeer *self, { g_return_if_fail(NM_IS_WIREGUARD_PEER(self, FALSE)); - nm_clear_g_free(&self->public_key); + nm_assert(public_key); - if (!public_key) - return; + nm_clear_g_free(&self->public_key); self->public_key = g_base64_encode(public_key, NM_WIREGUARD_PUBLIC_KEY_LEN); self->public_key_valid = TRUE;