raster pushed a commit to branch efl-1.22.

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

commit 454b1f4dd60532aad1356acc4f3ecaec335dd24a
Author: Carsten Haitzler (Rasterman) <[email protected]>
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 2e7e7ad9ba..1bc90a2e69 100644
--- a/src/lib/edje/edje_message_queue.c
+++ b/src/lib/edje/edje_message_queue.c
@@ -350,13 +350,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