ducatividdec: prevent overread when all buffer slots are used
[glsdk/gst-plugin-ducati.git] / src / gstducatividdec.c
index a82e4110f061872277ad24c8b1664026a58b36c6..caeceb47f1b288fb772ea5467d03c9a208a663bf 100644 (file)
@@ -224,8 +224,7 @@ get_buffer_priv (GstDucatiVidDec * self, GstBuffer * buf)
 
     priv = gst_ducati_buffer_priv_new ();
 
-    priv->bo = omap_bo_from_dmabuf (self->device,
-        gst_dma_buf_get_fd (dmabuf));
+    priv->bo = omap_bo_from_dmabuf (self->device, gst_dma_buf_get_fd (dmabuf));
 
     priv->uv_offset = gst_video_format_get_component_offset (format,
         1, self->stride, self->padded_height);
@@ -328,7 +327,7 @@ codec_process (GstDucatiVidDec * self, gboolean send, gboolean flush,
           self->outArgs->extendedError, self->status->extendedError);
   }
 
-  for (i = 0; self->outArgs->outputID[i]; i++) {
+  for (i = 0; i < IVIDEO2_MAX_IO_BUFFERS && self->outArgs->outputID[i]; i++) {
     gboolean interlaced;
 
     outbuf = codec_get_outbuf (self, self->outArgs->outputID[i]);
@@ -471,7 +470,7 @@ codec_process (GstDucatiVidDec * self, gboolean send, gboolean flush,
     }
   }
 
-  for (i = 0; self->outArgs->freeBufID[i]; i++) {
+  for (i = 0; i < IVIDEO2_MAX_IO_BUFFERS && self->outArgs->freeBufID[i]; i++) {
     codec_unlock_outbuf (self, self->outArgs->freeBufID[i]);
   }