Browse Source

libavcodec/wmalosslessdec: Check the remaining bits

Fixes assertion failure
Fixes: 24ebfda03228b5cc1ef792608cfba458/signal_sigabrt_7ffff6ae7c37_6473_3fa8a111dbc752b1a7c411c5ab79aaa4.wma

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 67318187fb)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.0.3
Michael Niedermayer 9 years ago
parent
commit
fe7366ee93
1 changed files with 5 additions and 0 deletions
  1. +5
    -0
      libavcodec/wmalosslessdec.c

+ 5
- 0
libavcodec/wmalosslessdec.c View File

@@ -1252,6 +1252,11 @@ static int decode_packet(AVCodecContext *avctx, void *data, int *got_frame_ptr,
}
}

if (remaining_bits(s, gb) < 0) {
av_log(avctx, AV_LOG_ERROR, "Overread %d\n", -remaining_bits(s, gb));
s->packet_loss = 1;
}

if (s->packet_done && !s->packet_loss &&
remaining_bits(s, gb) > 0) {
/* save the rest of the data so that it can be decoded


Loading…
Cancel
Save