mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-09 09:28:06 +02:00
core: fix potential use after free
_LOGD uses 'self', so don't unref it until after the _LOGD. Discovered by Coverity.
This commit is contained in:
parent
4d17064f2a
commit
0d3fef3bcd
1 changed files with 5 additions and 5 deletions
|
|
@ -703,16 +703,16 @@ nm_netns_ip_reservation_release(NMNetnsIPReservation *res)
|
||||||
if (!g_hash_table_remove(*table, res))
|
if (!g_hash_table_remove(*table, res))
|
||||||
nm_assert_not_reached();
|
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",
|
_LOGD("%s: release IP address reservation %s/%u",
|
||||||
desc->name,
|
desc->name,
|
||||||
nm_inet4_ntop(res->addr, buf),
|
nm_inet4_ntop(res->addr, buf),
|
||||||
desc->prefix_len);
|
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;
|
res->_self = NULL;
|
||||||
nm_g_slice_free(res);
|
nm_g_slice_free(res);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue