mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 19:36:18 +01:00
Fix g_hash_table_foreach crash with NULL hash table
When G_DISABLE_ASSERT is not defined, g_hash_table_foreach and g_hash_table_find dereferences the hash table argument before checking if it's NULL. This causes a crash when one of this function is mistakenly called with a NULL argument instead of returning with a warning through g_return_if_fail.
This commit is contained in:
parent
b17b135d9f
commit
6d3b31a533
12
glib/ghash.c
12
glib/ghash.c
@ -1504,12 +1504,16 @@ g_hash_table_foreach (GHashTable *hash_table,
|
||||
{
|
||||
gint i;
|
||||
#ifndef G_DISABLE_ASSERT
|
||||
gint version = hash_table->version;
|
||||
gint version;
|
||||
#endif
|
||||
|
||||
g_return_if_fail (hash_table != NULL);
|
||||
g_return_if_fail (func != NULL);
|
||||
|
||||
#ifndef G_DISABLE_ASSERT
|
||||
version = hash_table->version;
|
||||
#endif
|
||||
|
||||
for (i = 0; i < hash_table->size; i++)
|
||||
{
|
||||
guint node_hash = hash_table->hashes[i];
|
||||
@ -1558,13 +1562,17 @@ g_hash_table_find (GHashTable *hash_table,
|
||||
{
|
||||
gint i;
|
||||
#ifndef G_DISABLE_ASSERT
|
||||
gint version = hash_table->version;
|
||||
gint version;
|
||||
#endif
|
||||
gboolean match;
|
||||
|
||||
g_return_val_if_fail (hash_table != NULL, NULL);
|
||||
g_return_val_if_fail (predicate != NULL, NULL);
|
||||
|
||||
#ifndef G_DISABLE_ASSERT
|
||||
version = hash_table->version;
|
||||
#endif
|
||||
|
||||
match = FALSE;
|
||||
|
||||
for (i = 0; i < hash_table->size; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user