From: Alan Modra Date: Tue, 21 Feb 2023 22:34:57 +0000 (+1030) Subject: Re: objdump read_section_stabs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=45b36294d60e3c72c32f8003b82ee852672f1948;p=binutils-gdb.git Re: objdump read_section_stabs Commit f9c36cc99518 changed (and renamed) read_section_stabs with one difference in overall behaviour. Previously read_section_stabs would return a NULL for an empty section, which was then treated the same as a missing section. Now an empty section is recognized and dumped. This leads to NULL stabp and stabs_end in print_section_stabs. Since stabs_end - STABSIZE is then a pointer to a very large address, the test "stabp < stabs_end - STABSIZE" succeeds. * objdump.c (print_section_stabs): Correct STABSIZE comparison. --- diff --git a/binutils/objdump.c b/binutils/objdump.c index 984c7219a0c..40ed6882b45 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -4508,7 +4508,7 @@ print_section_stabs (bfd *abfd, We start the index at -1 because there is a dummy symbol on the front of stabs-in-{coff,elf} sections that supplies sizes. */ - for (i = -1; stabp <= stabs_end - STABSIZE; stabp += STABSIZE, i++) + for (i = -1; (size_t) (stabs_end - stabp) >= STABSIZE; stabp += STABSIZE, i++) { const char *name; unsigned long strx;