From 0d3fef3bcda7e288450332ff0dbb57515ca8199c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Wed, 10 Sep 2025 07:22:31 +0200 Subject: [PATCH] core: fix potential use after free _LOGD uses 'self', so don't unref it until after the _LOGD. Discovered by Coverity. --- src/core/nm-netns.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/nm-netns.c b/src/core/nm-netns.c index 7e4b3ccc15..f55d1132d0 100644 --- a/src/core/nm-netns.c +++ b/src/core/nm-netns.c @@ -703,16 +703,16 @@ nm_netns_ip_reservation_release(NMNetnsIPReservation *res) if (!g_hash_table_remove(*table, res)) nm_assert_not_reached(); - if (g_hash_table_size(*table) == 0) { - nm_clear_pointer(table, g_hash_table_unref); - g_object_unref(self); - } - _LOGD("%s: release IP address reservation %s/%u", desc->name, nm_inet4_ntop(res->addr, buf), desc->prefix_len); + if (g_hash_table_size(*table) == 0) { + nm_clear_pointer(table, g_hash_table_unref); + g_object_unref(self); + } + res->_self = NULL; nm_g_slice_free(res); }