From fff6ce7f2eff52a9d97db2280124278cf08516a8 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Fri, 14 Feb 2020 18:17:25 +0900 Subject: [PATCH] eina_rbtree: avoid defererencing null pointer Summary: Pointer 'it->stack' is dereferenced at `_eina_rbtree_iterator_free`. Reviewers: Hermet, zmike Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11346 --- src/lib/eina/eina_rbtree.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/eina/eina_rbtree.c b/src/lib/eina/eina_rbtree.c index b7373c7fbe..24d5b99a00 100644 --- a/src/lib/eina/eina_rbtree.c +++ b/src/lib/eina/eina_rbtree.c @@ -228,10 +228,14 @@ _eina_rbtree_iterator_build(const Eina_Rbtree *root, unsigned char mask) it = calloc(1, sizeof (Eina_Iterator_Rbtree)); if (!it) return NULL; - eina_trash_init(&it->trash); + eina_trash_init(&it->trash); - it->stack = eina_array_new(8); - if (!it->stack) goto on_error; + it->stack = eina_array_new(8); + if (!it->stack) + { + free(it); + return NULL; + } } first = _eina_rbtree_iterator_list_new(it, root);