forked from enlightenment/efl
Evas textblock: fix null-derefernce in _style_match_tag()
Summary: add null check in _style_match_tag() if evas_object_textblock_text_markup_set() is called with markup text before setting style, segmentation fault is occurred in _style_match_tag() @fix Test Plan: Insert this situation to test suite -> test id : evas_textblock_simple Test for without this patch: 1. apply patch just "src/tests/evas/evas_test_textblock.c" partially. 2. $make check Test for with this patch: 1. apply this patch completely (2 files) 2. $make check Reviewers: id213sin, herdsman Subscribers: Blackmole, cedric, jpeg Projects: #efl Differential Revision: https://phab.enlightenment.org/D3818
This commit is contained in:
parent
959e6de3e7
commit
c23283944b
|
@ -757,13 +757,16 @@ _style_match_tag(const Evas_Textblock_Style *ts, const char *s, size_t tag_len,
|
|||
Evas_Object_Style_Tag *tag;
|
||||
|
||||
/* Try the style tags */
|
||||
EINA_INLIST_FOREACH(ts->tags, tag)
|
||||
if (ts)
|
||||
{
|
||||
if (tag->tag.tag_len != tag_len) continue;
|
||||
if (!strncmp(tag->tag.tag, s, tag_len))
|
||||
EINA_INLIST_FOREACH(ts->tags, tag)
|
||||
{
|
||||
*replace_len = tag->tag.replace_len;
|
||||
return tag->tag.replace;
|
||||
if (tag->tag.tag_len != tag_len) continue;
|
||||
if (!strncmp(tag->tag.tag, s, tag_len))
|
||||
{
|
||||
*replace_len = tag->tag.replace_len;
|
||||
return tag->tag.replace;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -68,6 +68,14 @@ START_TEST(evas_textblock_simple)
|
|||
const char *buf = "Th<i>i</i>s is a <br/> te<b>s</b>t.";
|
||||
evas_object_textblock_text_markup_set(tb, buf);
|
||||
fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf));
|
||||
|
||||
/* Set markup text(includes tag) without setting style */
|
||||
Evas_Object *tb2 = evas_object_textblock_add(evas);
|
||||
fail_if(!tb2);
|
||||
evas_object_textblock_text_markup_set(tb2, buf);
|
||||
ck_assert("Crash Not occurred");
|
||||
evas_object_del(tb2);
|
||||
|
||||
END_TB_TEST();
|
||||
}
|
||||
END_TEST
|
||||
|
|
Loading…
Reference in New Issue