gstreamer/subprojects/gst-plugins-good/ext/flac
Sebastian Dröge 10d42caef2 flacenc: Correctly handle up to 255 cue entries
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>
2023-10-04 19:06:33 +01:00
..
gstflac.c
gstflacdec.c
gstflacdec.h
gstflacelement.c
gstflacelements.h
gstflacenc.c flacenc: Correctly handle up to 255 cue entries 2023-10-04 19:06:33 +01:00
gstflacenc.h
gstflactag.c
gstflactag.h
meson.build meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00