summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-04-03 17:20:34 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-04-06 09:05:05 +0200
commit13d52be7e6a2a7f761996bb850b10127378b190f (patch)
treec3194da3a8e5ffd85915987dbc995036e79cebd7
parent5565e904795ce32ba734a3022f01753acb1dd738 (diff)
downloadefl-13d52be7e6a2a7f761996bb850b10127378b190f.tar.gz
ecore_evas: fix leaks in macos and win32
memory is duplicated in eina_content_new. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D11641
-rw-r--r--src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c2
-rw-r--r--src/modules/ecore_evas/engines/win32/ecore_evas_win32.c1
2 files changed, 3 insertions, 0 deletions
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