avfilter/af_surround: Check output format

Fixes: CID1516994 Out-of-bounds access
Fixes: CID1516996 Out-of-bounds access
Fixes: CID1516999 Out-of-bounds access

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2024-07-12 22:16:13 +02:00
parent 43b62b7e0c
commit 22ee55a1da
No known key found for this signature in database
GPG Key ID: B18E8928B3948D64
1 changed files with 25 additions and 0 deletions

View File

@ -1123,6 +1123,31 @@ static av_cold int init(AVFilterContext *ctx)
s->create_lfe = av_channel_layout_index_from_channel(&s->out_ch_layout, s->create_lfe = av_channel_layout_index_from_channel(&s->out_ch_layout,
AV_CHAN_LOW_FREQUENCY) >= 0; AV_CHAN_LOW_FREQUENCY) >= 0;
switch (out_channel_layout) {
case AV_CH_LAYOUT_MONO:
case AV_CH_LAYOUT_STEREO:
case AV_CH_LAYOUT_2POINT1:
case AV_CH_LAYOUT_2_1:
case AV_CH_LAYOUT_2_2:
case AV_CH_LAYOUT_SURROUND:
case AV_CH_LAYOUT_3POINT1:
case AV_CH_LAYOUT_QUAD:
case AV_CH_LAYOUT_4POINT0:
case AV_CH_LAYOUT_4POINT1:
case AV_CH_LAYOUT_5POINT0:
case AV_CH_LAYOUT_5POINT1:
case AV_CH_LAYOUT_5POINT0_BACK:
case AV_CH_LAYOUT_5POINT1_BACK:
case AV_CH_LAYOUT_6POINT0:
case AV_CH_LAYOUT_6POINT1:
case AV_CH_LAYOUT_7POINT0:
case AV_CH_LAYOUT_7POINT1:
case AV_CH_LAYOUT_OCTAGONAL:
break;
default:
goto fail;
}
switch (in_channel_layout) { switch (in_channel_layout) {
case AV_CH_LAYOUT_STEREO: case AV_CH_LAYOUT_STEREO:
s->filter = filter_stereo; s->filter = filter_stereo;