aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <basile@opensource.dyc.edu>2011-04-13 15:56:53 -0400
committerAnthony G. Basile <basile@opensource.dyc.edu>2011-04-13 15:56:53 -0400
commitc93680d1e0e29b7fd08509c2bd579b226fa3f9f1 (patch)
treef211f936ebf1a5c4779a19622a0865dd9e90fc38
parentfix-gnustack.c: fixed bug not skipping over !GNU_STACK headers (diff)
downloadelfix-c93680d1e0e29b7fd08509c2bd579b226fa3f9f1.tar.gz
elfix-c93680d1e0e29b7fd08509c2bd579b226fa3f9f1.tar.bz2
elfix-c93680d1e0e29b7fd08509c2bd579b226fa3f9f1.zip
fix-gnustack.c: fixed open() to RDWR
-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));
}
}
}