mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
wavparse: Check size before reading ds64 chunk
Thanks to Antonio Morales for finding and reporting the issue. Fixes GHSL-2024-261 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3889 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>
This commit is contained in:
parent
526d0eef0d
commit
4f381d1501
1 changed files with 5 additions and 0 deletions
|
@ -1088,6 +1088,11 @@ parse_ds64 (GstWavParse * wav, GstBuffer * buf)
|
||||||
guint32 sampleCountLow, sampleCountHigh;
|
guint32 sampleCountLow, sampleCountHigh;
|
||||||
|
|
||||||
gst_buffer_map (buf, &map, GST_MAP_READ);
|
gst_buffer_map (buf, &map, GST_MAP_READ);
|
||||||
|
if (map.size < 6 * 4) {
|
||||||
|
GST_WARNING_OBJECT (wav, "Too small ds64 chunk (%" G_GSIZE_FORMAT ")",
|
||||||
|
map.size);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
dataSizeLow = GST_READ_UINT32_LE (map.data + 2 * 4);
|
dataSizeLow = GST_READ_UINT32_LE (map.data + 2 * 4);
|
||||||
dataSizeHigh = GST_READ_UINT32_LE (map.data + 3 * 4);
|
dataSizeHigh = GST_READ_UINT32_LE (map.data + 3 * 4);
|
||||||
sampleCountLow = GST_READ_UINT32_LE (map.data + 4 * 4);
|
sampleCountLow = GST_READ_UINT32_LE (map.data + 4 * 4);
|
||||||
|
|
Loading…
Reference in a new issue