added checking pointers for hash table iterator
authorHolger Schemel <info@artsoft.org>
Tue, 27 Feb 2024 19:24:45 +0000 (20:24 +0100)
committerHolger Schemel <info@artsoft.org>
Tue, 27 Feb 2024 19:24:45 +0000 (20:24 +0100)
src/libgame/hash.c

index 4dd904c9caac425fd3b485357980d3d67ffba6e1..b3595ad4ce4517f8f4b50ab5a7ee847ae1513422 100644 (file)
@@ -423,18 +423,24 @@ hashtable_iterator(struct hashtable *h)
 /* key - return the key of the (key, value) pair at the current position */
 
 void *
-hashtable_iterator_key(struct hashtable_itr *i)
+hashtable_iterator_key(struct hashtable_itr *itr)
 {
-  return i->e->k;
+  if (itr == NULL || itr->e == NULL)
+    return NULL;
+
+  return itr->e->k;
 }
 
 /*****************************************************************************/
 /* value - return the value of the (key, value) pair at the current position */
 
 void *
-hashtable_iterator_value(struct hashtable_itr *i)
+hashtable_iterator_value(struct hashtable_itr *itr)
 {
-  return i->e->v;
+  if (itr == NULL || itr->e == NULL)
+    return NULL;
+
+  return itr->e->v;
 }
 
 /*****************************************************************************/