Browse Source

vorbisdec: Add missing checks

Rate and order must not be 0 even if the specification does not say that
explicitly.
tags/n1.2
Luca Barbato 12 years ago
parent
commit
5b47c19bfd
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      libavcodec/vorbisdec.c

+ 10
- 0
libavcodec/vorbisdec.c View File

@@ -584,7 +584,17 @@ static int vorbis_parse_setup_hdr_floors(vorbis_context *vc)
floor_setup->decode = vorbis_floor0_decode; floor_setup->decode = vorbis_floor0_decode;


floor_setup->data.t0.order = get_bits(gb, 8); floor_setup->data.t0.order = get_bits(gb, 8);
if (!floor_setup->data.t0.order) {
av_log(vc->avccontext, AV_LOG_ERROR,
"Floor 0 order is 0.\n");
return AVERROR_INVALIDDATA;
}
floor_setup->data.t0.rate = get_bits(gb, 16); floor_setup->data.t0.rate = get_bits(gb, 16);
if (!floor_setup->data.t0.rate) {
av_log(vc->avccontext, AV_LOG_ERROR,
"Floor 0 rate is 0.\n");
return AVERROR_INVALIDDATA;
}
floor_setup->data.t0.bark_map_size = get_bits(gb, 16); floor_setup->data.t0.bark_map_size = get_bits(gb, 16);
if (!floor_setup->data.t0.bark_map_size) { if (!floor_setup->data.t0.bark_map_size) {
av_log(vc->avccontext, AV_LOG_ERROR, av_log(vc->avccontext, AV_LOG_ERROR,


Loading…
Cancel
Save