Nothing in the AU specification sets a limit on channel count.
We only need to avoid an overflow in the packet size calculation.
return 0;
}
+#define BLOCK_SIZE 1024
+
/* au input */
static int au_read_header(AVFormatContext *s)
{
return AVERROR_PATCHWELCOME;
}
- if (channels == 0 || channels > 64) {
+ if (channels == 0 || channels >= INT_MAX / (BLOCK_SIZE * bps >> 3)) {
av_log(s, AV_LOG_ERROR, "Invalid number of channels %d\n", channels);
return AVERROR_INVALIDDATA;
}
return 0;
}
-#define BLOCK_SIZE 1024
-
static int au_read_packet(AVFormatContext *s,
AVPacket *pkt)
{