From 2aec1123f9ec86cd190767c9852cb77ed2c017ec Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 28 Oct 2020 11:07:02 +0000 Subject: Fix a potential illegal memory access when creating an srec format file. PR 26774 * srec.c (srec_write_symbols): Do not emit symbols in sections that have been removed from the output. --- bfd/ChangeLog | 6 ++++++ bfd/srec.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d93b27b..30bd85d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-10-28 Nick Clifton + + PR 26774 + * srec.c (srec_write_symbols): Do not emit symbols in sections + that have been removed from the output. + 2020-10-27 Nick Clifton * elf64-hppa.c (elf_hppa_final_link_relocate): Check that the diff --git a/bfd/srec.c b/bfd/srec.c index ef7eb43..6cbe330 100644 --- a/bfd/srec.c +++ b/bfd/srec.c @@ -1085,8 +1085,11 @@ srec_write_symbols (bfd *abfd) for (i = 0; i < count; i++) { asymbol *s = table[i]; + if (! bfd_is_local_label (abfd, s) - && (s->flags & BSF_DEBUGGING) == 0) + && (s->flags & BSF_DEBUGGING) == 0 + && s->section != NULL + && s->section->output_section != NULL) { /* Just dump out non debug symbols. */ char buf[43], *p; -- cgit v1.1