From f98c5772c97ff15ef39562d77c23cdd904c0a5db Mon Sep 17 00:00:00 2001 From: kaiw Date: Sat, 7 May 2011 11:04:36 +0000 Subject: For zero-sized sections, set the `d_buf` field of the `Elf_Data` descriptor returned by `elf_rawdata()` to NULL. Obtained from: elftoolchain --- lib/libelf/elf_data.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/libelf/elf_data.c') diff --git a/lib/libelf/elf_data.c b/lib/libelf/elf_data.c index b8c10de..c34c4ad 100644 --- a/lib/libelf/elf_data.c +++ b/lib/libelf/elf_data.c @@ -225,7 +225,8 @@ elf_rawdata(Elf_Scn *s, Elf_Data *d) if ((d = _libelf_allocate_data(s)) == NULL) return (NULL); - d->d_buf = sh_type == SHT_NOBITS ? NULL : e->e_rawfile + sh_offset; + d->d_buf = (sh_type == SHT_NOBITS || sh_size == 0) ? NULL : + e->e_rawfile + sh_offset; d->d_off = 0; d->d_align = sh_align; d->d_size = sh_size; -- cgit v1.1