]> git.sesse.net Git - vlc/commitdiff
* src/video_output/vout_pictures.c: avoid overflow in vout_PlacePicture().
authorGildas Bazin <gbazin@videolan.org>
Sun, 23 Oct 2005 11:07:38 +0000 (11:07 +0000)
committerGildas Bazin <gbazin@videolan.org>
Sun, 23 Oct 2005 11:07:38 +0000 (11:07 +0000)
src/video_output/vout_pictures.c

index b95a72d9d39d0b7bdfd5c63f5d38627e51d17416..fbc4765c9cc958a742833edad80f338100d1363b 100644 (file)
@@ -444,19 +444,19 @@ void vout_PlacePicture( vout_thread_t *p_vout,
         *pi_height = __MIN( i_height, p_vout->fmt_in.i_visible_height );
     }
 
-    if( p_vout->fmt_in.i_visible_width * p_vout->fmt_in.i_sar_num *
+    if( p_vout->fmt_in.i_visible_width * (int64_t)p_vout->fmt_in.i_sar_num *
         *pi_height /
         (p_vout->fmt_in.i_visible_height * p_vout->fmt_in.i_sar_den) >
         *pi_width )
     {
         *pi_height = p_vout->fmt_in.i_visible_height *
-            p_vout->fmt_in.i_sar_den * *pi_width /
+            (int64_t)p_vout->fmt_in.i_sar_den * *pi_width /
             (p_vout->fmt_in.i_visible_width * p_vout->fmt_in.i_sar_num);
     }
     else
     {
         *pi_width = p_vout->fmt_in.i_visible_width *
-            p_vout->fmt_in.i_sar_num * *pi_height /
+            (int64_t)p_vout->fmt_in.i_sar_num * *pi_height /
             (p_vout->fmt_in.i_visible_height * p_vout->fmt_in.i_sar_den);
     }