]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libelf: getdata check 64bit values correctly on 32bit arch.
authorMark Wielaard <mjw@redhat.com>
Sun, 16 Nov 2014 10:19:29 +0000 (11:19 +0100)
committerMark Wielaard <mjw@redhat.com>
Sun, 16 Nov 2014 10:19:34 +0000 (11:19 +0100)
On 32bit arches size_t is too small to do size and overflow checks
of 64bit ELF files. Use the actual Elf64 types to make sure checks
on 64bit ELF files are done correctly on 32bit arches.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
libelf/ChangeLog
libelf/elf_getdata.c

index 4fbe94c93ed9e4fe6499b41dac13f0a3cf6a705f..488609392951f9521c6f9ec12ed4775a2926ce4a 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-16  Mark Wielaard  <mjw@redhat.com>
+
+       * elf_getdata.c (__libelf_set_rawdata_wrlock): Declare offset, size
+       and align as Elf64_Off and Elf64_Xword not size_t.
+
 2014-11-14  Mark Wielaard  <mjw@redhat.com>
 
        * gelf_getnote.c (gelf_getnote): Check offset overflow.
index 1ce1e23b56e0477ad3b214f553ad0de7f8838214..0aeb9972e51fa07260f51022725ed2b32fa917d1 100644 (file)
@@ -170,9 +170,9 @@ int
 internal_function
 __libelf_set_rawdata_wrlock (Elf_Scn *scn)
 {
-  size_t offset;
-  size_t size;
-  size_t align;
+  Elf64_Off offset;
+  Elf64_Xword size;
+  Elf64_Xword align;
   int type;
   Elf *elf = scn->elf;