mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-05 07:40:28 +01:00
auth-utils: memleak: free the key when we steal data
==5177== 6 (+6) bytes in 1 (+1) blocks are definitely lost in loss record 118 of 6,581 ==5177== at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5177== by 0x7F4A6F5: g_malloc (gmem.c:97) ==5177== by 0x7F6301E: g_strdup (gstrfuncs.c:356) ==5177== by 0x4AD902: nm_auth_chain_set_data (nm-auth-utils.c:194) ==5177== by 0x50919E: impl_agent_manager_register_with_capabilities (nm-agent-manager.c:323) ==5177== by 0x62649BE: invoke_object_method (dbus-gobject.c:1899) ==5177== by 0x62649BE: object_registration_message (dbus-gobject.c:2161) ==5177== by 0x649D5CE: _dbus_object_tree_dispatch_and_unlock (dbus-object-tree.c:1018) ==5177== by 0x648F193: dbus_connection_dispatch (dbus-connection.c:4718) ==5177== by 0x6261DB4: message_queue_dispatch (dbus-gmain.c:90) ==5177== by 0x7F44AEA: g_main_dispatch (gmain.c:3111) ==5177== by 0x7F44AEA: g_main_context_dispatch (gmain.c:3710) ==5177== by 0x7F44E87: g_main_context_iterate.isra.29 (gmain.c:3781) ==5177== by 0x7F451B1: g_main_loop_run (gmain.c:3975)
This commit is contained in:
parent
e5499c558f
commit
da5c332151
1 changed files with 3 additions and 2 deletions
|
|
@ -158,17 +158,18 @@ nm_auth_chain_steal_data (NMAuthChain *self, const char *tag)
|
|||
{
|
||||
ChainData *tmp;
|
||||
gpointer value = NULL;
|
||||
void *orig_key;
|
||||
|
||||
g_return_val_if_fail (self != NULL, NULL);
|
||||
g_return_val_if_fail (tag != NULL, NULL);
|
||||
|
||||
tmp = g_hash_table_lookup (self->data, tag);
|
||||
if (tmp) {
|
||||
if (g_hash_table_lookup_extended (self->data, tag, &orig_key, (gpointer)&tmp)) {
|
||||
g_hash_table_steal (self->data, tag);
|
||||
value = tmp->data;
|
||||
/* Make sure the destroy handler isn't called when freeing */
|
||||
tmp->destroy = NULL;
|
||||
free_data (tmp);
|
||||
g_free (orig_key);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue