Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e68c636d authored by Hans-Christian Egtvedt's avatar Hans-Christian Egtvedt
Browse files

avr32: fix relocation check for signed 18-bit offset



Caught by static code analysis by David.

Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
Signed-off-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
Cc: stable@kernel.org
parent d6ffe1b8
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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;