mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
alac: Limit max_samples_per_frame
Otherwise buffer size calculations in allocate_buffers could overflow later, making the code think a large enough buffer actually was allocated. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
0fbda03e5c
commit
f7c5883126
@ -494,7 +494,8 @@ static int alac_set_info(ALACContext *alac)
|
|||||||
bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4
|
bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4
|
||||||
|
|
||||||
alac->max_samples_per_frame = bytestream2_get_be32u(&gb);
|
alac->max_samples_per_frame = bytestream2_get_be32u(&gb);
|
||||||
if (!alac->max_samples_per_frame || alac->max_samples_per_frame > INT_MAX) {
|
if (!alac->max_samples_per_frame ||
|
||||||
|
alac->max_samples_per_frame > INT_MAX / sizeof(int32_t)) {
|
||||||
av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n",
|
av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n",
|
||||||
alac->max_samples_per_frame);
|
alac->max_samples_per_frame);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user