sstrip: fix a section length corruption bug (patch from #6847)
authorFelix Fietkau <nbd@openwrt.org>
Fri, 12 Mar 2010 00:35:36 +0000 (00:35 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 12 Mar 2010 00:35:36 +0000 (00:35 +0000)
SVN-Revision: 20154

tools/sstrip/src/sstrip.c

index 6607d12..0508aaa 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)); \
                } \
        } \
  \