raster pushed a commit to branch master.

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

commit f850cf6a00c1fe205fa7ebdfdd78318f48b58213
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Tue Jul 9 16:02:40 2019 +0100

    edje - double make sure edje messages are zero'd due to a segv i saw
    
    i saw a segv on freeing em->msg as it was a junk ptr... i dont know
    for sure it msg was properly initted but as em is recycled from trash
    be sure and zero it when digging out of trash because em->msg was not
    a valid ptr (and i wasnt using valgrind at the time to know for sure
    and cant find this with valgrind now).
    
    @fix
---
 src/lib/edje/edje_message_queue.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/edje/edje_message_queue.c 
b/src/lib/edje/edje_message_queue.c
index ea3adc824a..020f89b46d 100644
--- a/src/lib/edje/edje_message_queue.c
+++ b/src/lib/edje/edje_message_queue.c
@@ -354,13 +354,14 @@ _edje_message_new(Edje *ed, Edje_Queue queue, 
Edje_Message_Type type, int id)
    Edje_Message *em;
 
    em = _edje_msg_trash_pop();
-   if (!em) em = calloc(1, sizeof(Edje_Message));
+   if (em) memset(em, 0, sizeof(Edje_Message));
+   else em = calloc(1, sizeof(Edje_Message));
    if (!em) return NULL;
    em->edje = ed;
+   em->edje->message.num++;
    em->queue = queue;
    em->type = type;
    em->id = id;
-   em->edje->message.num++;
    return em;
 }
 

-- 


Reply via email to