From 1d71315dc910228e6ca21c26367d8f8aecf2e2d4 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Tue, 17 Jan 2012 11:55:14 +0100 Subject: [PATCH] amrnbdec: _parse should not return OK if not enough data yet --- ext/amrnb/amrnbdec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/amrnb/amrnbdec.c b/ext/amrnb/amrnbdec.c index 5f6c64b39b..bf59d8de50 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;