Browse Source

dcadec: check lfe field

Fix out of array accesses

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Michael Niedermayer 13 years ago
parent
commit
3b2cd83a82
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      libavcodec/dcadec.c

+ 6
- 0
libavcodec/dcadec.c View File

@@ -737,6 +737,12 @@ static int dca_parse_frame_header(DCAContext *s)
s->lfe = get_bits(&s->gb, 2);
s->predictor_history = get_bits(&s->gb, 1);

if (s->lfe == 3) {
s->lfe = 0;
av_log_ask_for_sample(s->avctx, "LFE is 3\n");
return AVERROR_PATCHWELCOME;
}

/* TODO: check CRC */
if (s->crc_present)
s->header_crc = get_bits(&s->gb, 16);


Loading…
Cancel
Save