mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
LibAudio: Fix UTF-8 decoding logic in FLAC decoding :^)
The problem here was that the multi-byte UTF-8 encoded characters were taking one byte too much, misaligning the data completely and eventually crashing the program on the 128th frame. This change reduces the for loop by one, as it has been already calculated from the start_byte variable.
This commit is contained in:
parent
9c71e43c3f
commit
3c62b661f4
Notes:
sideshowbarker
2024-07-19 17:23:57 +09:00
Author: https://github.com/krkk Commit: https://github.com/SerenityOS/serenity/commit/3c62b661f46 Pull-request: https://github.com/SerenityOS/serenity/pull/8921 Reviewed-by: https://github.com/kleinesfilmroellchen ✅
|
@ -802,7 +802,7 @@ u64 read_utf8_char(InputStream& input)
|
|||
u8 bits_from_start_byte = 8 - (length + 1);
|
||||
u8 start_byte_bitmask = AK::exp2(bits_from_start_byte) - 1;
|
||||
character = start_byte_bitmask & start_byte;
|
||||
for (u8 i = length; i > 0; --i) {
|
||||
for (u8 i = length - 1; i > 0; --i) {
|
||||
input.read(single_byte_buffer);
|
||||
u8 current_byte = single_byte_buffer[0];
|
||||
character = (character << 6) | (current_byte & 0b00111111);
|
||||
|
|
Loading…
Reference in a new issue