avcodec/utils: Use 64bit for aspect ratio calculation in avcodec_string()

Fixes integer overflow
Fixes: 3a45b2ae02f2cf12b7bd99543cdcdae5/asan_heap-oob_1dff502_8022_899f75e1e81046ebd7b6c2394a1419f4.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/162/head
Michael Niedermayer 9 years ago
parent 13696c3789
commit 4f03bebc79
  1. 4
      libavcodec/utils.c

@ -2760,8 +2760,8 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
if (enc->sample_aspect_ratio.num) { if (enc->sample_aspect_ratio.num) {
av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den, av_reduce(&display_aspect_ratio.num, &display_aspect_ratio.den,
enc->width * enc->sample_aspect_ratio.num, enc->width * (int64_t)enc->sample_aspect_ratio.num,
enc->height * enc->sample_aspect_ratio.den, enc->height * (int64_t)enc->sample_aspect_ratio.den,
1024 * 1024); 1024 * 1024);
snprintf(buf + strlen(buf), buf_size - strlen(buf), snprintf(buf + strlen(buf), buf_size - strlen(buf),
" [SAR %d:%d DAR %d:%d]", " [SAR %d:%d DAR %d:%d]",

Loading…
Cancel
Save