From 6a52d3f73ca65bd196f3db18435f8cd82d5faf65 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Tue, 17 Jan 2012 11:55:59 +0100 Subject: [PATCH] amrwbdec: _parse should not return OK if not enough data yet --- ext/amrwbdec/amrwbdec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ext/amrwbdec/amrwbdec.c b/ext/amrwbdec/amrwbdec.c index e056a7a9..53358661 100644 --- a/ext/amrwbdec/amrwbdec.c +++ b/ext/amrwbdec/amrwbdec.c @@ -183,7 +183,7 @@ gst_amrwbdec_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); @@ -193,6 +193,8 @@ gst_amrwbdec_parse (GstAudioDecoder * dec, GstAdapter * adapter, GST_DEBUG_OBJECT (amrwbdec, "mode %d, block %d", mode, block); if (block) { + if (block > size) + return GST_FLOW_UNEXPECTED; *offset = 0; *length = block; } else { -- 2.26.2