summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2014-07-18 19:25:57 +0400
committerDr.Smile <vabnick@gmail.com>2014-07-18 19:27:56 +0400
commitee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078 (patch)
tree7a91ddad9ddf13103d7ad7ec458555776710cd6e
parentacf32f415b0b6878c11a6d17f70d0428a39ee372 (diff)
downloadlibass-ee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078.tar.bz2
libass-ee94375e1d4c5d977e5e9c4ad5cba9a7f8e2d078.tar.xz
Fix integer overflow in FT_Outline
-rw-r--r--libass/ass_drawing.c4
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;