This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: [PATCH] strings: Produce error when section data falls outside file.
- From: Alexander Cherepanov <cherepan at mccme dot ru>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Sat, 27 Dec 2014 04:31:14 +0300
- Subject: Re: [PATCH] strings: Produce error when section data falls outside file.
On 2014-12-27 01:00, Mark Wielaard wrote:
> diff --git a/src/strings.c b/src/strings.c
> index f60e4b4..d1eb7b2 100644
> --- a/src/strings.c
> +++ b/src/strings.c
> @@ -725,8 +725,21 @@ read_elf (Elf *elf, int fd, const char *fname, off64_t fdlen)
> actually have content. */
> if (shdr != NULL && shdr->sh_type != SHT_NOBITS
> && (shdr->sh_flags & SHF_ALLOC) != 0)
> - result |= read_block (fd, fname, fdlen, shdr->sh_offset,
> - shdr->sh_offset + shdr->sh_size);
> + {
> + if (shdr->sh_offset > fdlen
> + || fdlen - shdr->sh_offset < shdr->sh_size)
> + {
It fails to build for me:
strings.c: In function 'read_elf':
strings.c:729:24: error: comparison between signed and unsigned integer
expressions [-Werror=sign-compare]
if (shdr->sh_offset > fdlen
^
cc1: all warnings being treated as errors
--
Alexander Cherepanov