From 6c10611150192467619ddf6f1399ef578465c0c8 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 2 Dec 2023 13:23:48 -0500 Subject: [PATCH] Avoid potential out-of-bounds read. --- Machines/Enterprise/Nick.cpp | 1 + Machines/Enterprise/Nick.hpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Machines/Enterprise/Nick.cpp b/Machines/Enterprise/Nick.cpp index 6da43d8cb..672c6caa4 100644 --- a/Machines/Enterprise/Nick.cpp +++ b/Machines/Enterprise/Nick.cpp @@ -196,6 +196,7 @@ void Nick::run_for(Cycles duration) { reload_line_parameter_pointer_ = ram_[line_parameter_pointer_ + 1] & 0x01; break; + // TODO: is this interpreted live, or locked in here? Consider mid-line changes. // Second slot: margins and ALT/IND bits. case 1: // Determine the margins. diff --git a/Machines/Enterprise/Nick.hpp b/Machines/Enterprise/Nick.hpp index 120d7b9cb..393928abb 100644 --- a/Machines/Enterprise/Nick.hpp +++ b/Machines/Enterprise/Nick.hpp @@ -75,7 +75,7 @@ class Nick { uint8_t lines_remaining_ = 0x00; uint8_t two_colour_mask_ = 0xff; int left_margin_ = 0, right_margin_ = 0; - const uint16_t *alt_ind_palettes[4]; + const uint16_t *alt_ind_palettes[4] = {palette_, palette_, palette_, palette_}; enum class Mode { Vsync, Pixel,