rmdemux: Check that enough SIPR audio data is available when copying
authorSebastian Dröge <sebastian@centricular.com>
Fri, 7 Jul 2023 07:00:19 +0000 (10:00 +0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 19 Jul 2023 13:13:45 +0000 (13:13 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5073>

subprojects/gst-plugins-ugly/gst/realmedia/rmdemux.c

index eaee9ac..902092b 100644 (file)
@@ -2168,7 +2168,13 @@ gst_rmdemux_descramble_sipr_audio (GstRMDemux * rmdemux,
       GST_BUFFER_PTS (outbuf) = GST_BUFFER_PTS (b);
     }
 
-    gst_buffer_extract (b, 0, outmap.data + packet_size * p, packet_size);
+    if (gst_buffer_extract (b, 0, outmap.data + packet_size * p,
+            packet_size) != packet_size) {
+      GST_ERROR_OBJECT (rmdemux, "not enough SIPR audio data available");
+      gst_buffer_unmap (outbuf, &outmap);
+      gst_buffer_unref (outbuf);
+      return GST_FLOW_ERROR;
+    }
   }
   gst_buffer_unmap (outbuf, &outmap);