From 236bf91febaa3a7b0c2231a8740968e90aa497c6 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 26 Dec 2015 18:22:37 -0500 Subject: [PATCH] sim: bfin: avoid stack error under asan We set up an array of 3 elements and then index into it with a 2bit value. We check the range before we actually use the pointer, but the indexing is enough to make asan upset, so just stuff a fourth value in there to keep things simple. --- sim/bfin/ChangeLog | 4 ++++ sim/bfin/bfin-sim.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog index 6717fcc9e09..fb00c8b52f9 100644 --- a/sim/bfin/ChangeLog +++ b/sim/bfin/ChangeLog @@ -1,3 +1,7 @@ +2015-12-26 Mike Frysinger + + * bfin-sim.c (decode_LDST_0): Add 4th element to posts array. + 2015-12-26 Mike Frysinger * interp.c (sim_create_inferior): Update comment and argv check. diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c index b6acb4e6a50..9737bc1797f 100644 --- a/sim/bfin/bfin-sim.c +++ b/sim/bfin/bfin-sim.c @@ -3292,7 +3292,7 @@ decode_LDST_0 (SIM_CPU *cpu, bu16 iw0) int aop = ((iw0 >> LDST_aop_bits) & LDST_aop_mask); int reg = ((iw0 >> LDST_reg_bits) & LDST_reg_mask); int ptr = ((iw0 >> LDST_ptr_bits) & LDST_ptr_mask); - const char * const posts[] = { "++", "--", "" }; + const char * const posts[] = { "++", "--", "", "" }; const char *post = posts[aop]; const char *ptr_name = get_preg_name (ptr); -- 2.30.2