mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-05 02:36:19 +01:00
Fix a possible use-after-free.
If g_mapped_file_new fails, then `version` will be freed, but it was already added to the hash table. This means there could be a use-after-free while doing a lookup on the hash table the next time.
This commit is contained in:
parent
d17edde568
commit
6747ec55dd
@ -1405,7 +1405,6 @@ enumerate_namespace_versions (const gchar *namespace,
|
||||
g_free (version);
|
||||
continue;
|
||||
}
|
||||
g_hash_table_insert (found_versions, version, version);
|
||||
|
||||
path = g_build_filename (dirname, entry, NULL);
|
||||
mfile = g_mapped_file_new (path, FALSE, &error);
|
||||
@ -1422,6 +1421,7 @@ enumerate_namespace_versions (const gchar *namespace,
|
||||
candidate->path = path;
|
||||
candidate->version = version;
|
||||
candidates = g_slist_prepend (candidates, candidate);
|
||||
g_hash_table_add (found_versions, version);
|
||||
}
|
||||
g_dir_close (dir);
|
||||
index++;
|
||||
|
Loading…
Reference in New Issue
Block a user