aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'fix-gnustack.c')
-rw-r--r--fix-gnustack.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/fix-gnustack.c b/fix-gnustack.c
index 8ddb28c..357c76f 100644
--- a/fix-gnustack.c
+++ b/fix-gnustack.c
@@ -27,7 +27,7 @@ int main( int argc, char *argv[])
if(argc != 2)
error(EXIT_FAILURE, 0, "Usage: %s <filename>", argv[0]);
- if((fd = open(argv[1], O_RDONLY)) == -1)
+ if((fd = open(argv[1], O_RDWR)) == -1)
error(EXIT_FAILURE, 0, "open() fail.");
if((elf = elf_begin(fd, ELF_C_RDWR, (Elf *)0)) == NULL)
@@ -59,13 +59,13 @@ int main( int argc, char *argv[])
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));
+ //if(elf_update(elf, ELF_C_NULL ) < 0)
+ // error (EXIT_FAILURE, 0, "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)
+ if(elf_flagphdr(elf, ELF_C_SET, ELF_F_DIRTY) == 0)
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));
+ error (EXIT_FAILURE, 0, "elf_update(ELF_C_WRITE) failed: %s.", elf_errmsg(-1));
}
}
}