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.
parent 763d054d
Pipeline #55544 passed with stages
in 6 minutes and 5 seconds
......@@ -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++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment