From: Richard Guenther Date: Fri, 5 Mar 2010 03:33:41 +0000 (-0800) Subject: Fix R_X86_64_PC32 overflow detection X-Git-Tag: fedora/glibc-2.11.1-7~1^2~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7dab764e6058b7383d76f0ba2b63ae3afbafd4ba;p=thirdparty%2Fglibc.git Fix R_X86_64_PC32 overflow detection (cherry picked from commit e39acb1f165c467e99509146c95f69c7444521e3) --- diff --git a/ChangeLog b/ChangeLog index 674587a0b2c..eece5e957b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-03-02 Richard Guenther + + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): R_X86_64_PC32 + is sign-extending. + 2010-02-24 Ulrich Drepper [BZ #11319] diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index 61a0556d5e4..f615e9591ff 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. x86-64 version. - Copyright (C) 2001-2005, 2006, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2001-2006, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger . @@ -419,7 +419,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, case R_X86_64_PC32: value += reloc->r_addend - (Elf64_Addr) reloc_addr; *(unsigned int *) reloc_addr = value; - if (__builtin_expect (value != (unsigned int) value, 0)) + if (__builtin_expect (value != (int) value, 0)) { fmt = "\ %s: Symbol `%s' causes overflow in R_X86_64_PC32 relocation\n";