summaryrefslogtreecommitdiff
path: root/libavformat/ape.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2022-09-16 17:58:36 +0200
committerPaul B Mahol <onemda@gmail.com>2022-09-16 18:04:20 +0200
commit9c05f178a6a9672411e5f5149c1b04adb4e77b51 (patch)
tree1c90b642012f567f92c0761229b96fef4e595c02 /libavformat/ape.c
parent8f115122733fd640b6f12290f2108939fda4c9cf (diff)
avformat/ape: fix overflow in total_blocks
Diffstat (limited to 'libavformat/ape.c')
-rw-r--r--libavformat/ape.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/ape.c b/libavformat/ape.c
index e694df7302..f904fde178 100644
--- a/libavformat/ape.c
+++ b/libavformat/ape.c
@@ -146,7 +146,7 @@ static int ape_read_header(AVFormatContext * s)
AVStream *st;
uint32_t tag;
int i, ret;
- int total_blocks;
+ int64_t total_blocks;
int64_t final_size = 0;
int64_t pts, file_size;
@@ -327,7 +327,7 @@ static int ape_read_header(AVFormatContext * s)
if (!st)
return AVERROR(ENOMEM);
- total_blocks = (ape->totalframes == 0) ? 0 : ((ape->totalframes - 1) * ape->blocksperframe) + ape->finalframeblocks;
+ total_blocks = (ape->totalframes == 0) ? 0 : ((int64_t)(ape->totalframes - 1) * ape->blocksperframe) + ape->finalframeblocks;
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
st->codecpar->codec_id = AV_CODEC_ID_APE;