mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-24 03:02:10 +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
649e3880b7
commit
125ceb1d44
12
glib/ghash.c
12
glib/ghash.c
@ -1429,12 +1429,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];
|
||||
@ -1483,13 +1487,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…
x
Reference in New Issue
Block a user