tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=61f3f68670e8e49258edb19e2c2aebdde30b605a

commit 61f3f68670e8e49258edb19e2c2aebdde30b605a
Author: Tom Hacohen <[email protected]>
Date:   Fri May 16 14:43:09 2014 +0100

    Eo: Make it clearer that a NULL deref can't happen.
    
    We check _current_table for NULL, and then populate it (it's a global)
    through another function, but we don't really check it's not NULL before
    using it, we just assume because of an indirect other variable.
    
    This confused coveritiy, can confuse humans too, and in general risky
    (if something changes).
    
    CID 1039419
---
 src/lib/eo/eo_ptr_indirection.x | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/eo/eo_ptr_indirection.x b/src/lib/eo/eo_ptr_indirection.x
index 61fd183..4efe667 100644
--- a/src/lib/eo/eo_ptr_indirection.x
+++ b/src/lib/eo/eo_ptr_indirection.x
@@ -392,10 +392,11 @@ _eo_id_allocate(const _Eo_Object *obj)
    if (!entry)
      {
         entry = _search_tables();
-        if (!entry)
-          return 0;
      }
 
+   if (!_current_table || !entry)
+      return 0;
+
    /* [1;max-1] thus we never generate an Eo_Id equal to 0 */
    _eo_generation_counter++;
    if (_eo_generation_counter == MAX_GENERATIONS)

-- 


Reply via email to