1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

avformat/cafenc: Fix potential integer overflow

(As long as avio_write() only accepts an int, it makes no sense
to try to support sizes that don't fit into an int.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2021-09-22 07:21:05 +02:00
parent 3a47e87d55
commit 42fe438482

View File

@@ -213,7 +213,7 @@ static int caf_write_packet(AVFormatContext *s, AVPacket *pkt)
avio_write(s->pb, pkt->data, pkt->size); avio_write(s->pb, pkt->data, pkt->size);
if (!s->streams[0]->codecpar->block_align) { if (!s->streams[0]->codecpar->block_align) {
void *pkt_sizes = caf->pkt_sizes; void *pkt_sizes = caf->pkt_sizes;
int i, alloc_size = caf->size_entries_used + 5; int i, alloc_size = caf->size_entries_used + 5U;
if (alloc_size < 0) { if (alloc_size < 0) {
caf->pkt_sizes = NULL; caf->pkt_sizes = NULL;
} else { } else {
@@ -257,7 +257,7 @@ static int caf_write_trailer(AVFormatContext *s)
} }
avio_seek(pb, file_size, SEEK_SET); avio_seek(pb, file_size, SEEK_SET);
ffio_wfourcc(pb, "pakt"); ffio_wfourcc(pb, "pakt");
avio_wb64(pb, caf->size_entries_used + 24); avio_wb64(pb, caf->size_entries_used + 24U);
avio_wb64(pb, caf->packets); ///< mNumberPackets avio_wb64(pb, caf->packets); ///< mNumberPackets
avio_wb64(pb, caf->packets * packet_size); ///< mNumberValidFrames avio_wb64(pb, caf->packets * packet_size); ///< mNumberValidFrames
avio_wb32(pb, 0); ///< mPrimingFrames avio_wb32(pb, 0); ///< mPrimingFrames