From d211786089fb029fbc7f7e5680be793dbac84879 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 7 Mar 1995 17:25:07 +0000 Subject: [PATCH] * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking sh_size. --- bfd/ChangeLog | 5 +++++ bfd/elfcode.h | 22 +++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fee1f1776c6..8702af818e0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 7 12:23:47 1995 Ian Lance Taylor + + * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking + sh_size. + Mon Mar 6 23:31:36 1995 Doug Evans * elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 72908ca582a..1766909124d 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -2261,28 +2261,24 @@ elf_sort_hdrs (arg1, arg2) if ((hdr1->sh_flags & SHF_ALLOC) != 0) { + int ret; + if ((hdr2->sh_flags & SHF_ALLOC) == 0) return -1; if (hdr1->sh_addr < hdr2->sh_addr) return -1; else if (hdr1->sh_addr > hdr2->sh_addr) return 1; + /* Put !SHT_NOBITS sections before SHT_NOBITS ones. + The main loop in map_program_segments requires this. */ + ret = (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); + if (ret != 0) + return ret; if (hdr1->sh_size == 0) - { - if (hdr2->sh_size == 0) - { - /* Put !SHT_NOBITS sections before SHT_NOBITS ones. - The main loop in map_program_segments requires this. */ - return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); - } - else - return -1; - } + return -1; else if (hdr2->sh_size == 0) return 1; - /* Put !SHT_NOBITS sections before SHT_NOBITS ones. - The main loop in map_program_segments requires this. */ - return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); + return 0; } else { -- 2.30.2