Fix dict traversal returning NULL + key_size origin/no_crash
authorLukáš Jiřiště <gymnazium.jiriste@gmail.com>
Sat, 16 Aug 2025 09:58:01 +0000 (11:58 +0200)
committerLukáš Jiřiště <gymnazium.jiriste@gmail.com>
Sat, 16 Aug 2025 09:58:01 +0000 (11:58 +0200)
Because I have done no checking the returned NULL has been increased by
the key size and then would not register as NULL anymore.

ft_struct/ft_dict_traversal.c

index 967bca2587a36c0b37d76c7ed70944cb731f2c2d..ccc3df43055b6e5b618eca4ef1d1b5fdfbcf0f1f 100644 (file)
@@ -8,7 +8,12 @@ t_ft_stat              ft_dict_traversal_init(t_dict_traversal *traversal, t_dict *dict)
 
 void   *ft_dict_traverse(t_dict_traversal *traversal)
 {
-       return ((char *)ft_rbtree_traverse(&traversal->traversal) + traversal->key_size);
+       void    *return_composite;
+
+       return_composite = ft_rbtree_traverse(&traversal->traversal);
+       if (!return_composite)
+               return (NULL);
+       return ((char *)return_composite + traversal->key_size);
 }
 
 void   ft_dict_traversal_free(t_dict_traversal *traversal)