cedric pushed a commit to branch master.

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

commit 94e9363649fa416ba359a97c50a8d57789898517
Author: Cedric Bail <cedric.b...@free.fr>
Date:   Sat Sep 14 19:13:04 2019 -0700

    eina: prevent leak of Eina_Value internal allocation.
    
    eina_value_copy assume the given Eina_Value as target is not initialized
    when it copy the source in it. In eina_value_reference_copy we were 
initialising
    before calling eina_value_copy which would then override and leak the 
internal
    pointer no fault of the users.
    
    Reviewed-by: Mike Blumenkrantz <michael.blumenkra...@gmail.com>
    Differential Revision: https://phab.enlightenment.org/D9943
---
 src/lib/eina/eina_inline_value_util.x | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/lib/eina/eina_inline_value_util.x 
b/src/lib/eina/eina_inline_value_util.x
index 09a7996087..17710a8cd7 100644
--- a/src/lib/eina/eina_inline_value_util.x
+++ b/src/lib/eina/eina_inline_value_util.x
@@ -327,8 +327,7 @@ eina_value_reference_copy(const Eina_Value *val)
 {
    Eina_Value v = EINA_VALUE_EMPTY;
 
-   if (!eina_value_setup(&v, eina_value_type_get(val)) ||
-       !eina_value_copy(val, &v))
+   if (!eina_value_copy(val, &v))
      {
         eina_value_setup(&v, EINA_VALUE_TYPE_ERROR);
         eina_value_set(&v, EINA_ERROR_VALUE_FAILED);

-- 


Reply via email to