summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c>2014-06-25 15:37:58 +0000
committerjep <jep@2b0047a9-a6d8-0310-accf-f7200b2a168c>2014-06-25 15:37:58 +0000
commit625700650b65b893f64d562149b42385a38c6b9c (patch)
tree8b5323ef092def0eafe95b2168c8eecde930f727
parent3edb7880dd83c0384a7f16fb98c47a3c2de5df97 (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--ChangeLog5
-rw-r--r--src/bitstream.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ca35e6b..2d7023e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}