aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <basile@opensource.dyc.edu>2011-04-13 14:38:35 -0400
committerAnthony G. Basile <basile@opensource.dyc.edu>2011-04-13 14:38:49 -0400
commit1c1fc39e1b0669869b21cca782d6fc1228fdcc7e (patch)
treec45ce092d1848e63f119b38ba45631eca2c715c8
parentAdded: fix-gnustack.c to clear X flag on .gnu.stack (diff)
downloadelfix-1c1fc39e1b0669869b21cca782d6fc1228fdcc7e.tar.gz
elfix-1c1fc39e1b0669869b21cca782d6fc1228fdcc7e.tar.bz2
elfix-1c1fc39e1b0669869b21cca782d6fc1228fdcc7e.zip
fix-gnustack.c: fixed bug not skipping over !GNU_STACK headers
-rw-r--r--fix-gnustack.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/fix-gnustack.c b/fix-gnustack.c
index edc0a3c..8ddb28c 100644
--- a/fix-gnustack.c
+++ b/fix-gnustack.c
@@ -52,21 +52,21 @@ int main( int argc, char *argv[])
if( phdr.p_flags & PF_W ) printf("W");
if( phdr.p_flags & PF_X ) printf("X");
printf("\n");
- }
- if((phdr.p_flags & PF_W) && (phdr.p_flags & PF_X))
- {
- printf("W&X found, flipping X flag ...\n");
- nflags = phdr.p_flags ^ PF_X;
- printf("oflags=%u PF_X=%d nflags=%u\n", phdr.p_flags, PF_X, nflags);
-
- if(elf_update(elf, ELF_C_NULL ) < 0)
- error (EXIT_FAILURE, "elf_update(ELF_C_NULL) failed: %s." , elf_errmsg(-1));
- phdr.p_flags = nflags ;
- if(elf_flagphdr(elf, ELF_C_SET, ELF_F_DIRTY) == NULL)
- error(EXIT_FAILURE, 0, "gelf_flagphdr() fail: %s", elf_errmsg(-1));
- if(elf_update(elf, ELF_C_WRITE) < 0)
- error (EXIT_FAILURE, "elf_update(ELF_C_WRITE) failed: %s." , elf_errmsg(-1));
+ if((phdr.p_flags & PF_W) && (phdr.p_flags & PF_X))
+ {
+ printf("W&X found, flipping X flag ...\n");
+ nflags = phdr.p_flags ^ PF_X;
+ printf("oflags=%u PF_X=%d nflags=%u\n", phdr.p_flags, PF_X, nflags);
+
+ if(elf_update(elf, ELF_C_NULL ) < 0)
+ error (EXIT_FAILURE, "elf_update(ELF_C_NULL) failed: %s." , elf_errmsg(-1));
+ phdr.p_flags = nflags ;
+ if(elf_flagphdr(elf, ELF_C_SET, ELF_F_DIRTY) == NULL)
+ error(EXIT_FAILURE, 0, "gelf_flagphdr() fail: %s", elf_errmsg(-1));
+ if(elf_update(elf, ELF_C_WRITE) < 0)
+ error (EXIT_FAILURE, "elf_update(ELF_C_WRITE) failed: %s." , elf_errmsg(-1));
+ }
}
}