summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2024-04-01 14:36:19 +0300
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2024-04-08 09:34:12 +0000
commit6953204a9c33130ccbbcb426f3ba274e921cf949 (patch)
tree9ce7351b5267dd2fe526ec773bde8d6b5c494c85
parent18548cdd761594542dbf1bd34f92fb675d9b158e (diff)
wavpackparse: Fix potential integer overflow on ID_ODD_SIZE blocks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>
-rw-r--r--subprojects/gst-plugins-good/gst/audioparsers/gstwavpackparse.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/subprojects/gst-plugins-good/gst/audioparsers/gstwavpackparse.c b/subprojects/gst-plugins-good/gst/audioparsers/gstwavpackparse.c
index 5e5abeb6e1..917ea2be52 100644
--- a/subprojects/gst-plugins-good/gst/audioparsers/gstwavpackparse.c
+++ b/subprojects/gst-plugins-good/gst/audioparsers/gstwavpackparse.c
@@ -322,8 +322,11 @@ gst_wavpack_parse_frame_metadata (GstWavpackParse * parse, GstBuffer * buf,
size <<= 8;
size += c;
size <<= 1;
- if (id & ID_ODD_SIZE)
+ if (id & ID_ODD_SIZE) {
+ if (size == 0)
+ goto read_failed;
size--;
+ }
CHECK (gst_byte_reader_get_data (&br, size + (size & 1), &data));
gst_byte_reader_init (&mbr, data, size);