mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-15 04:46:32 +00:00
10d42caef2
The counter was using a signed 8 bit integer, which was overflowing after 127 entries. That was then passed as an unsigned 32 bit integer to libflac, which caused it to be converted to a huge unsigned number. That then caused an invalid memory access inside libflac. As a bonus, signed integer overflow is undefined behaviour. Instead, use an unsigned 8 bit integer. Once this overflows the existing code already catches it and stops adding the cue. While FLAC__metadata_object_cuesheet_insert_track() takes an unsigned 32 bit integer for the track number, FLAC__StreamMetadata_CueSheet_Track is limiting it to an unsigned 8 bit integer. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2921 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5436> |
||
---|---|---|
.. | ||
gstflac.c | ||
gstflacdec.c | ||
gstflacdec.h | ||
gstflacelement.c | ||
gstflacelements.h | ||
gstflacenc.c | ||
gstflacenc.h | ||
gstflactag.c | ||
gstflactag.h | ||
meson.build |