diff options
author | Alan Modra <amodra@gmail.com> | 2018-05-07 11:36:07 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2018-05-07 12:33:26 +0930 |
commit | 7bd8862c3ad0ee291d27837ae3cd30288a00b922 (patch) | |
tree | 418131f989551335d6f8eead366d563d02dac1a4 /bfd/peXXigen.c | |
parent | fe5bc53b24ea5b61b1ff280b737db5ed14c00142 (diff) | |
download | gdb-7bd8862c3ad0ee291d27837ae3cd30288a00b922.zip gdb-7bd8862c3ad0ee291d27837ae3cd30288a00b922.tar.gz gdb-7bd8862c3ad0ee291d27837ae3cd30288a00b922.tar.bz2 |
Replace uses of strncmp with memcmp
Avoids gcc pr85623 for these calls.
* cofflink.c (_bfd_coff_link_input_bfd): Use memcmp rather than
strncmp when checking for ".bf" special symbol.
* prXXigen.c (_bfd_XXi_swap_scnhdr_out): Make pe_required_section_flags
section name a char array, remove sentinal known_sections entry,
and adjust loop over known_sections to suit. Use memcmp rather
than strncmp.
Diffstat (limited to 'bfd/peXXigen.c')
-rw-r--r-- | bfd/peXXigen.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index a62d126..5e0acc4 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -1018,7 +1018,7 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out) typedef struct { - const char * section_name; + char section_name[SCNNMLEN]; unsigned long must_have; } pe_required_section_flags; @@ -1037,7 +1037,6 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out) { ".text" , IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE }, { ".tls", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE }, { ".xdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA }, - { NULL, 0} }; pe_required_section_flags * p; @@ -1050,11 +1049,12 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out) by ld --enable-auto-import (if auto-import is actually needed), by ld --omagic, or by obcopy --writable-text. */ - for (p = known_sections; p->section_name; p++) - if (strncmp (scnhdr_int->s_name, p->section_name, - sizeof scnhdr_int->s_name) == 0) + for (p = known_sections; + p < known_sections + ARRAY_SIZE (known_sections); + p++) + if (memcmp (scnhdr_int->s_name, p->section_name, SCNNMLEN) == 0) { - if (strncmp (scnhdr_int->s_name, ".text", sizeof scnhdr_int->s_name) + if (memcmp (scnhdr_int->s_name, ".text", sizeof ".text") || (bfd_get_file_flags (abfd) & WP_TEXT)) scnhdr_int->s_flags &= ~IMAGE_SCN_MEM_WRITE; scnhdr_int->s_flags |= p->must_have; @@ -1067,7 +1067,7 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out) if (coff_data (abfd)->link_info && ! bfd_link_relocatable (coff_data (abfd)->link_info) && ! bfd_link_pic (coff_data (abfd)->link_info) - && strncmp (scnhdr_int->s_name, ".text", sizeof scnhdr_int->s_name) == 0) + && memcmp (scnhdr_int->s_name, ".text", sizeof ".text") == 0) { /* By inference from looking at MS output, the 32 bit field which is the combination of the number_of_relocs and |