From 46b36d04a82f42e2a08727937bfdc9b383c84feb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Jan 2026 03:51:12 +0000 Subject: [PATCH 1/2] Initial plan From 43bbf482b8f036f4ba8daec6e54755f1d561834f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Jan 2026 03:55:22 +0000 Subject: [PATCH 2/2] Fix CVE-2020-0499 in FLAC bitreader with correct boundary check Co-authored-by: MatPoliquin <7024551+MatPoliquin@users.noreply.github.com> --- cores/genesis/core/cd_hw/libchdr/deps/libFLAC/bitreader.c | 2 +- cores/pce/deps/flac-1.3.2/src/libFLAC/bitreader.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/genesis/core/cd_hw/libchdr/deps/libFLAC/bitreader.c b/cores/genesis/core/cd_hw/libchdr/deps/libFLAC/bitreader.c index ab62d414f..7f22b625c 100644 --- a/cores/genesis/core/cd_hw/libchdr/deps/libFLAC/bitreader.c +++ b/cores/genesis/core/cd_hw/libchdr/deps/libFLAC/bitreader.c @@ -859,7 +859,7 @@ FLAC__bool FLAC__bitreader_read_rice_signed_block(FLAC__BitReader *br, int vals[ cwords = br->consumed_words; words = br->words; ucbits = FLAC__BITS_PER_WORD - br->consumed_bits; - b = br->buffer[cwords] << br->consumed_bits; + b = cwords < words ? br->buffer[cwords] << br->consumed_bits : 0; } while(cwords >= words && val < end); } diff --git a/cores/pce/deps/flac-1.3.2/src/libFLAC/bitreader.c b/cores/pce/deps/flac-1.3.2/src/libFLAC/bitreader.c index ab62d414f..7f22b625c 100644 --- a/cores/pce/deps/flac-1.3.2/src/libFLAC/bitreader.c +++ b/cores/pce/deps/flac-1.3.2/src/libFLAC/bitreader.c @@ -859,7 +859,7 @@ FLAC__bool FLAC__bitreader_read_rice_signed_block(FLAC__BitReader *br, int vals[ cwords = br->consumed_words; words = br->words; ucbits = FLAC__BITS_PER_WORD - br->consumed_bits; - b = br->buffer[cwords] << br->consumed_bits; + b = cwords < words ? br->buffer[cwords] << br->consumed_bits : 0; } while(cwords >= words && val < end); }