[FFmpeg-cvslog] alac: Limit max_samples_per_frame
Martin Storsjö
git at videolan.org
Sat Sep 7 14:25:48 CEST 2013
ffmpeg | branch: release/1.1 | Martin Storsjö <martin at martin.st> | Tue Sep 3 11:54:03 2013 +0300| [3d91117df0034ca9458e4b791a182082a50a6ad9] | committer: Luca Barbato
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 at libav.org
Signed-off-by: Martin Storsjö <martin at martin.st>
(cherry picked from commit f7c5883126f9440547933eefcf000aa78af4821c)
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3d91117df0034ca9458e4b791a182082a50a6ad9
---
libavcodec/alac.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index 1a3f769..b69efc3 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -495,7 +495,8 @@ static int alac_set_info(ALACContext *alac)
bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4
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",
alac->max_samples_per_frame);
return AVERROR_INVALIDDATA;
More information about the ffmpeg-cvslog
mailing list