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
This commit is contained in:
Youngbok Shin 2015-08-27 11:04:57 +01:00 committed by Tom Hacohen
parent bd8f585d74
commit f210e42966
1 changed files with 1 additions and 8 deletions

View File

@ -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