]> granicus.if.org Git - libass/commitdiff
Fix some of the recently added checks
authorwm4 <wm4@nowhere>
Sun, 16 Nov 2014 23:03:05 +0000 (00:03 +0100)
committerwm4 <wm4@nowhere>
Sun, 16 Nov 2014 23:03:05 +0000 (00:03 +0100)
libass/ass_bitmap.c

index cb059f11c869d3e76dfc6ac64748066cb3914fd3..e6bec825851ed8907fcfb73804ef6a834ce6f7ef 100644 (file)
@@ -124,7 +124,7 @@ static bool generate_tables(ASS_SynthPriv *priv, double radius)
 
 static bool resize_tmp(ASS_SynthPriv *priv, int w, int h)
 {
-    if (w >= INT_MAX || (w + 1) > SIZE_MAX / 2 / sizeof(unsigned) / h)
+    if (w >= INT_MAX || (w + 1) > SIZE_MAX / 2 / sizeof(unsigned) / FFMAX(h, 1))
         return false;
     size_t needed = sizeof(unsigned) * (w + 1) * h;
     if (priv->tmp && priv->tmp_allocated >= needed)
@@ -679,7 +679,7 @@ int outline_to_bitmap3(ASS_Renderer *render_priv, FT_Outline *outline, FT_Outlin
 {
     blur_radius *= 2;
     int bbord = be > 0 ? sqrt(2 * be) : 0;
-    int gbord = blur_radius > 0.0 ? FFMAX(blur_radius + 1, INT_MAX) : 0;
+    int gbord = blur_radius > 0.0 ? FFMIN(blur_radius + 1, INT_MAX) : 0;
     int bord = FFMAX(bbord, gbord);
     if (bord == 0 && (shadow_offset.x || shadow_offset.y))
         bord = 1;