[FFmpeg-devel] [PATCH] Prevent integer overflow in vf_psnr.c.

Neil Birkbeck neil.birkbeck at gmail.com
Sat Sep 21 02:25:40 CEST 2013


The 32-bit integer accumulator in MSE computation can overflow for 8-bit frame data.  
(e.g., for 1080p white frame compared to a black frame can give sum of 255*255*1080*1920 > 2^32).

Signed-off-by: Neil Birkbeck <neil.birkbeck at gmail.com>
---
 libavfilter/vf_psnr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavfilter/vf_psnr.c b/libavfilter/vf_psnr.c
index 3744579..1bcdd7d 100644
--- a/libavfilter/vf_psnr.c
+++ b/libavfilter/vf_psnr.c
@@ -91,7 +91,7 @@ void compute_images_mse(PSNRContext *s,
         const uint8_t *ref_line = ref_data[c];
         const int ref_linesize = ref_linesizes[c];
         const int main_linesize = main_linesizes[c];
-        int m = 0;
+        uint64_t m = 0;
 
         for (i = 0; i < outh; i++) {
             for (j = 0; j < outw; j++)
-- 
1.8.4



More information about the ffmpeg-devel mailing list