Skip to content

Commit 78bd36a

Browse files
author
ga
committed
Fix a potential crash with tracing (sim_core.c) and add a check
for a null-pointer return from elf_strptr(). That should be a fix for Bug #303 - "segfault when running simduino.elf".
1 parent aaf7259 commit 78bd36a

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

simavr/sim/sim_core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ static const char *get_data_address_string(avr_t* avr, uint16_t addr)
126126
}
127127

128128
#define DAS(addr) get_data_address_string(avr, addr)
129-
#define FAS(addr) (((addr >> 1) > avr->trace_data->codeline_size) ? \
129+
#define FAS(addr) (((addr >> 1) >= avr->trace_data->codeline_size) ? \
130130
"[not loaded]" : avr->trace_data->codeline[addr >> 1])
131131

132132
void crash(avr_t* avr)

simavr/sim/sim_elf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ elf_read_firmware(
553553
char * name = elf_strptr(elf, elf_header.e_shstrndx, shdr.sh_name);
554554
// printf("Walking elf section '%s'\n", name);
555555

556-
if (!strcmp(name, ".mmcu")) {
556+
if (name && !strcmp(name, ".mmcu")) {
557557
Elf_Data *s = elf_getdata(scn, NULL);
558558

559559
elf_parse_mmcu_section(firmware, s->d_buf, s->d_size);

0 commit comments

Comments
 (0)