From 13d52be7e6a2a7f761996bb850b10127378b190f Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Fri, 3 Apr 2020 17:20:34 +0200 Subject: [PATCH] ecore_evas: fix leaks in macos and win32 memory is duplicated in eina_content_new. Reviewed-by: Mike Blumenkrantz Differential Revision: https://phab.enlightenment.org/D11641 --- src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c | 2 ++ src/modules/ecore_evas/engines/win32/ecore_evas_win32.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 05740c306b..51fe657f39 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -531,10 +531,12 @@ _ecore_evas_cocoa_selection_request(Ecore_Evas *ee EINA_UNUSED, unsigned int sea slice.mem = data; } content = eina_content_new(eina_rw_slice_slice_get(slice), mime_type); + free(slice.mem); //memory got duplicated in eina_content_new if (!content) // construction can fail because of some validation reasons eina_promise_reject(promise, ecore_evas_no_matching_type); else eina_promise_resolve(promise, eina_value_content_init(content)); + } return future; } diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c index 41a0fad65e..638d4e74f7 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -1307,6 +1307,7 @@ _ecore_evas_win32_selection_request(Ecore_Evas *ee EINA_UNUSED, unsigned int sea slice.mem = data; } content = eina_content_new(eina_rw_slice_slice_get(slice), mime_type); + free(slice.mem); //memory got duplicated in eina_content_new if (!content) // construction can fail because of some validation reasons eina_promise_reject(promise, ecore_evas_no_matching_type); else