diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-01-17 11:55:14 +0100 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-01-17 11:57:21 +0100 |
commit | 1d71315dc910228e6ca21c26367d8f8aecf2e2d4 (patch) | |
tree | 746940a1f60a5f9bb17717f904300b4387d3a1c6 | |
parent | 683f5eeae7b830e4e4b790f3817ff6b8ce517b1c (diff) |
amrnbdec: _parse should not return OK if not enough data yet
-rw-r--r-- | ext/amrnb/amrnbdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/amrnb/amrnbdec.c b/ext/amrnb/amrnbdec.c index 5f6c64b3..bf59d8de 100644 --- a/ext/amrnb/amrnbdec.c +++ b/ext/amrnb/amrnbdec.c @@ -257,7 +257,7 @@ gst_amrnbdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, gst_audio_decoder_get_parse_state (dec, &sync, &eos); /* need to peek data to get the size */ - if (gst_adapter_available (adapter) < 1) + if (size < 1) return GST_FLOW_ERROR; data = gst_adapter_peek (adapter, 1); @@ -280,6 +280,9 @@ gst_amrnbdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, GST_DEBUG_OBJECT (amrnbdec, "mode %d, block %d", mode, block); + if (block > size) + return GST_FLOW_UNEXPECTED; + *offset = 0; *length = block; |