diff options
author | Youngbok Shin <youngb.shin@samsung.com> | 2015-08-27 11:04:57 +0100 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2015-08-27 11:06:23 +0100 |
commit | f210e429663d9bdb0eadf46d42c0ae8742bc615c (patch) | |
tree | f3f49f9cb1cf8733321b06414edfe0db0f266316 | |
parent | bd8f585d74f472f686ea9f348f3dbded0d056a87 (diff) | |
download | efl-f210e429663d9bdb0eadf46d42c0ae8742bc615c.tar.gz |
edje: Fix double free scenario caused by static pointer.
Summary:
The result of evas_object_textblock_cursor_content_get() API has to be cleaned
by outside. _edje_entry_cursor_content_get() is calling free() inside of the
function for handle the result using static pointer. But, the caller of
_edje_entry_cursor_content_get() is already handling the result using free().
It can cause double free problem.
The bigger issue is in elementary. See elm_entry_cursor_content_get() API's
document. The document advice developers to free the result when it is done.
@fix
Test Plan: N/A
Reviewers: tasn, raster, woohyun
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2991
-rw-r--r-- | src/lib/edje/edje_entry.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index b7289b4cfe..237e49a340 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -3871,18 +3871,11 @@ _edje_entry_cursor_is_visible_format_get(Edje_Real_Part *rp, Edje_Cursor cur) char * _edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur) { - static char *s = NULL; Evas_Textblock_Cursor *c = _cursor_get(rp, cur); if (!c) return NULL; - if (s) - { - free(s); - s = NULL; - } - s = evas_textblock_cursor_content_get(c); - return s; + return evas_textblock_cursor_content_get(c); } void |