avr32: fix relocation check for signed 18-bit offset
Caught by static code analysis by David. Reported-by: David Binderman <dcb314@hotmail.com> Signed-off-by: Hans-Christian Egtvedt <egtvedt@samfundet.no> Cc: stable@kernel.org
This commit is contained in:
@@ -264,7 +264,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
|
|||||||
break;
|
break;
|
||||||
case R_AVR32_GOT18SW:
|
case R_AVR32_GOT18SW:
|
||||||
if ((relocation & 0xfffe0003) != 0
|
if ((relocation & 0xfffe0003) != 0
|
||||||
&& (relocation & 0xfffc0003) != 0xffff0000)
|
&& (relocation & 0xfffc0000) != 0xfffc0000)
|
||||||
return reloc_overflow(module, "R_AVR32_GOT18SW",
|
return reloc_overflow(module, "R_AVR32_GOT18SW",
|
||||||
relocation);
|
relocation);
|
||||||
relocation >>= 2;
|
relocation >>= 2;
|
||||||
|
Reference in New Issue
Block a user