diff options
author | Dr.Smile <vabnick@gmail.com> | 2014-07-18 19:25:57 +0400 |
---|---|---|
committer | Dr.Smile <vabnick@gmail.com> | 2014-07-18 19:27:56 +0400 |
commit | ee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078 (patch) | |
tree | 7a91ddad9ddf13103d7ad7ec458555776710cd6e | |
parent | acf32f415b0b6878c11a6d17f70d0428a39ee372 (diff) | |
download | libass-ee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078.tar.bz2 libass-ee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078.tar.xz |
Fix integer overflow in FT_Outline
-rw-r--r-- | libass/ass_drawing.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c index 7837e27..fec9de2 100644 --- a/libass/ass_drawing.c +++ b/libass/ass_drawing.c @@ -36,6 +36,8 @@ static inline void drawing_add_point(ASS_Drawing *drawing, FT_Vector *point) { FT_Outline *ol = &drawing->outline; + if (ol->n_points == SHRT_MAX) + return; if (ol->n_points >= drawing->max_points) { drawing->max_points *= 2; @@ -56,6 +58,8 @@ static inline void drawing_add_point(ASS_Drawing *drawing, static inline void drawing_close_shape(ASS_Drawing *drawing) { FT_Outline *ol = &drawing->outline; + if (ol->n_contours == SHRT_MAX) + return; if (ol->n_contours >= drawing->max_contours) { drawing->max_contours *= 2; |