From: Sebastian Dröge Date: Mon, 30 Sep 2024 13:32:48 +0000 (+0300) Subject: matroskademux: Only unmap GstMapInfo in WavPack header extraction error paths if... X-Git-Tag: 1.24.10~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a16851ebf34a9f9be4285b2c0d75fe7844354efe;p=platform%2Fupstream%2Fgstreamer.git matroskademux: Only unmap GstMapInfo in WavPack header extraction error paths if previously mapped Thanks to Antonio Morales for finding and reporting the issue. Fixes GHSL-2024-197 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3863 Part-of: --- diff --git a/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c b/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c index 41725e83a6..9e0de058e6 100644 --- a/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c +++ b/subprojects/gst-plugins-good/gst/matroska/matroska-demux.c @@ -3891,7 +3891,6 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, GstMatroskaTrackAudioContext *audiocontext = (GstMatroskaTrackAudioContext *) stream; GstBuffer *newbuf = NULL; - GstMapInfo map, outmap; guint8 *buf_data, *data; Wavpack4Header wvh; @@ -3908,11 +3907,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, if (audiocontext->channels <= 2) { guint32 block_samples, tmp; + GstMapInfo outmap; gsize size = gst_buffer_get_size (*buf); if (size < 4) { GST_ERROR_OBJECT (element, "Too small wavpack buffer"); - gst_buffer_unmap (*buf, &map); return GST_FLOW_ERROR; } @@ -3950,6 +3949,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, *buf = newbuf; audiocontext->wvpk_block_index += block_samples; } else { + GstMapInfo map, outmap; guint8 *outdata = NULL; gsize buf_size, size; guint32 block_samples, flags, crc;