Browse Source

Fix possible crashes in mlp parser, it tries to go back 7 bytes after

finding the 4-byte signature.
Add a check that ignores the signature if we do not have enough previous
data to go back at least 7 bytes.

Originally committed as revision 21487 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Reimar Döffinger 15 years ago
parent
commit
7e2ef1b9e1
1 changed files with 3 additions and 1 deletions
  1. +3
    -1
      libavcodec/mlp_parser.c

+ 3
- 1
libavcodec/mlp_parser.c View File

@@ -176,7 +176,9 @@ static int mlp_parse(AVCodecParserContext *s,

for (i = 0; i < buf_size; i++) {
mp->pc.state = (mp->pc.state << 8) | buf[i];
if ((mp->pc.state & 0xfffffffe) == 0xf8726fba) {
if ((mp->pc.state & 0xfffffffe) == 0xf8726fba &&
// ignore if we do not have the data for the start of header
mp->pc.index + i >= 7) {
mp->in_sync = 1;
mp->bytes_left = 0;
break;


Loading…
Cancel
Save