sstrip: fix a section length corruption bug (patch from #6847)
[openwrt-10.03/.git] / tools / sstrip / src / sstrip.c
index 6607d12500547787e4eacc230b1be4db2dfd823d..0508aaac81ec0a48ba524b444eaa368444ff2620 100644 (file)
@@ -251,8 +251,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)); \
                } \
        } \
  \