From caee890727245cde1cd31b482da22b748b76d40e Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 15 May 2018 06:49:50 -0700 Subject: [PATCH] TX-0: Fix Coverity indicated potential memory overrun --- TX-0/tx0_cpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TX-0/tx0_cpu.c b/TX-0/tx0_cpu.c index cb7f80da..3bba28e3 100644 --- a/TX-0/tx0_cpu.c +++ b/TX-0/tx0_cpu.c @@ -234,6 +234,8 @@ In addtion, many of the operate-class micro-orders changed. #define UNIT_EXT_INST (1 << UNIT_V_EXT) #define UNIT_MSIZE (1 << UNIT_V_MSIZE) +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) + #define HIST_PC 0x40000000 #define HIST_V_SHF 18 #define HIST_MIN 64 @@ -1228,7 +1230,7 @@ t_stat sim_load(FILE *fileref, CONST char *cptr, CONST char *fnam, int flag) { } else { lo = strtotv(cptr, &result, 8) & 0xFFFF; sz = sim_fsize(fileref); - sz_words = sz / 4; + sz_words = MIN (sz, sizeof (M)) / 4; for (j = lo; j < sz_words; j++) { sim_fread(&word, 4, 1, fileref); M[j] = word;