index e056a7a9df2bb747c53e1bd1fdad83163bb32010..53358661d3d7dd02541bb8a89728ec721b90d4f2 100644 (file)
--- a/ext/amrwbdec/amrwbdec.c
+++ b/ext/amrwbdec/amrwbdec.c
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);
GST_DEBUG_OBJECT (amrwbdec, "mode %d, block %d", mode, block);
if (block) {
+ if (block > size)
+ return GST_FLOW_UNEXPECTED;
*offset = 0;
*length = block;
} else {