From ba9a2612324c2cfaf63d64a722a1a0ecc5793de7 Mon Sep 17 00:00:00 2001 From: norly Date: Wed, 26 Jun 2013 18:44:42 +0100 Subject: [PATCH] Expand downwards only if there is enough space --- src/libelfu/modelops/layout.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libelfu/modelops/layout.c b/src/libelfu/modelops/layout.c index 4026e58..f8a30ed 100644 --- a/src/libelfu/modelops/layout.c +++ b/src/libelfu/modelops/layout.c @@ -240,7 +240,8 @@ GElf_Addr elfu_mLayoutGetSpaceInPhdr(ElfuElf *me, GElf_Word size, } else if (((w && (lowestAddr->phdr.p_flags & PF_W)) || (x && (lowestAddr->phdr.p_flags & PF_X))) && /* Enough space to expand downwards? */ - (lowestAddr->phdr.p_vaddr > 3 * lowestAddr->phdr.p_align) + (lowestAddr->phdr.p_vaddr >= ((2 * lowestAddr->phdr.p_align) + + ROUNDUP(size, lowestAddr->phdr.p_align))) /* Merging only works if the LOAD is the first both in file and mem */ && lowestAddr == lowestOffs) { /* Need to prepend or split up the PHDR. */ -- 2.30.2