Quellcode durchsuchen

sstrip: fix section length corruption bug

Based on openwrt #6847:

https://dev.openwrt.org/ticket/6847

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Peter Korsgaard vor 15 Jahren
Ursprung
Commit
c0e307b848
1 geänderte Dateien mit 1 neuen und 2 gelöschten Zeilen
  1. 1 2
      toolchain/sstrip/sstrip.c

+ 1 - 2
toolchain/sstrip/sstrip.c

@@ -253,8 +253,7 @@ static int modifyheaders ## CLASS (Elf ## CLASS ## _Ehdr *ehdr, \
 			ESET(phdr->p_offset,newsize); \
 			ESET(phdr->p_filesz,0); \
 		} else if (EGET(phdr->p_offset) + EGET(phdr->p_filesz) > newsize) { \
-			newsize -= EGET(phdr->p_offset); \
-			ESET(phdr->p_filesz, newsize); \
+			ESET(phdr->p_filesz, newsize - EGET(phdr->p_offset)); \
 		} \
 	} \
  \