diff options
author | jep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c> | 2014-06-25 15:37:58 +0000 |
---|---|---|
committer | jep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c> | 2014-06-25 15:37:58 +0000 |
commit | 625700650b65b893f64d562149b42385a38c6b9c (patch) | |
tree | 8b5323ef092def0eafe95b2168c8eecde930f727 | |
parent | 3edb7880dd83c0384a7f16fb98c47a3c2de5df97 (diff) |
* src/bitstream.c: (h_rewindNbits):
Avoid a segfault on some corrupted clips.
git-svn-id: https://core.fluendo.com/gstreamer/svn/trunk/gst-fluendo-mp3@2622 2b0047a9-a6d8-0310-accf-f7200b2a168c
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/bitstream.c | 5 |
2 files changed, 9 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2014-06-25 Josep Torra <josep@fluendo.com> + + * src/bitstream.c: (h_rewindNbits): + Avoid a segfault on some corrupted clips. + 2014-06-17 Release Maker <nomail@fluendo.com> * configure.ac: Back to TRUNK. diff --git a/src/bitstream.c b/src/bitstream.c index 71a3d75..dc8109b 100644 --- a/src/bitstream.c +++ b/src/bitstream.c @@ -257,7 +257,10 @@ h_rewindNbits (huffdec_bitbuf * bb, guint N) bb->buf_bit_idx = 0; bits = 8 - (N % 8); bytes = (N + 8 + BS_ACUM_SIZE) >> 3; - bb->buf_byte_idx -= bytes; + if (bb->buf_byte_idx >= bytes) + bb->buf_byte_idx -= bytes; + else + bb->buf_byte_idx = 0; bb->remaining += bytes; h_getbits (bb, bits); } |