From 94e9363649fa416ba359a97c50a8d57789898517 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Sat, 14 Sep 2019 19:13:04 -0700 Subject: [PATCH] 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 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);