jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f3c9500a6d7de03f92b62cf6515518dbe6385259
commit f3c9500a6d7de03f92b62cf6515518dbe6385259 Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Mon Apr 10 16:56:14 2017 +0900 evas filters: Fix a rare crash in text render (SW) There are reports of crashes when y < 0. This case seems abnormal in case of filters, as I don't know how to reproduce it, but it's happened. Thanks Youngbok Shin for the report. @fix --- src/lib/evas/common/evas_font_compress.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/common/evas_font_compress.c b/src/lib/evas/common/evas_font_compress.c index 7788ba5..e923e17 100644 --- a/src/lib/evas/common/evas_font_compress.c +++ b/src/lib/evas/common/evas_font_compress.c @@ -508,11 +508,24 @@ evas_common_font_glyph_draw(RGBA_Font_Glyph *fg, // FIXME: Font draw not optimized for Alpha targets! SLOW! // This is not pretty :) - DATA8 *dst8 = dst_image->image.data8 + x + (y * dst_pitch); Alpha_Gfx_Func func; - DATA8 *src8; + DATA8 *src8, *dst8; int row; + if (EINA_UNLIKELY(x < 0)) + { + x1 += (-x); + x = 0; + if ((x2 - x1) <= 0) return; + } + if (EINA_UNLIKELY(y < 0)) + { + y1 += (-y); + y = 0; + if ((y2 - y1) <= 0) return; + } + + dst8 = dst_image->image.data8 + x + (y * dst_pitch); func = efl_draw_alpha_func_get(dc->render_op, EINA_FALSE); src8 = evas_common_font_glyph_uncompress(fg, NULL, NULL); if (!src8) return; --