diff options
author | Cedric Bail <cedric.bail@free.fr> | 2019-09-14 19:13:04 -0700 |
---|---|---|
committer | Cedric Bail <cedric.bail@free.fr> | 2019-09-17 10:24:08 -0700 |
commit | 94e9363649fa416ba359a97c50a8d57789898517 (patch) | |
tree | 0ece2fd74569b59899cf44d3ee636f699b094258 | |
parent | 93a382085b4c23f424ba1f7d53a80f1c702220c2 (diff) | |
download | efl-94e9363649fa416ba359a97c50a8d57789898517.tar.gz |
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.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9943
-rw-r--r-- | src/lib/eina/eina_inline_value_util.x | 3 |
1 files changed, 1 insertions, 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); |