* [gentoo-commits] proj/elfix:elfix-0.2.x commit in: src/
@ 2011-09-27 18:00 Anthony G. Basile
0 siblings, 0 replies; 3+ messages in thread
From: Anthony G. Basile @ 2011-09-27 18:00 UTC (permalink / raw
To: gentoo-commits
commit: 26a53560ddd64f3a9494f9fa33929972edfff79d
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 27 17:29:53 2011 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Sep 27 18:00:12 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/elfix.git;a=commit;h=26a53560
src/paxctl-ng.c: remove redundand call to gelf_getehdr
---
src/paxctl-ng.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/src/paxctl-ng.c b/src/paxctl-ng.c
index fd04dec..fea0832 100644
--- a/src/paxctl-ng.c
+++ b/src/paxctl-ng.c
@@ -297,9 +297,6 @@ set_flags(Elf *elf, int *pax_flags)
ei_flags |= HF_PAX_RANDEXEC;
- if(gelf_getehdr(elf, &ehdr) != &ehdr)
- error(EXIT_FAILURE, 0, "gelf_getehdr(): %s", elf_errmsg(elf_errno()));
-
ehdr.e_ident[EI_PAX] = (uint8_t)ei_flags ;
ehdr.e_ident[EI_PAX + 1] = (uint8_t)(ei_flags >> 8) ;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/elfix:elfix-0.2.x commit in: src/
@ 2011-09-27 18:01 Anthony G. Basile
0 siblings, 0 replies; 3+ messages in thread
From: Anthony G. Basile @ 2011-09-27 18:01 UTC (permalink / raw
To: gentoo-commits
commit: 37dda0ddd4a2adf25f5a43d2d754ca8a6391cdae
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 27 17:57:55 2011 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Sep 27 18:00:59 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/elfix.git;a=commit;h=37dda0dd
src/paxctl-ng.c: fix PT_PAX flag setting
---
src/paxctl-ng.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 84 insertions(+), 15 deletions(-)
diff --git a/src/paxctl-ng.c b/src/paxctl-ng.c
index fea0832..c565ffa 100644
--- a/src/paxctl-ng.c
+++ b/src/paxctl-ng.c
@@ -254,6 +254,7 @@ set_flags(Elf *elf, int *pax_flags)
ei_flags = ehdr.e_ident[EI_PAX] + (ehdr.e_ident[EI_PAX + 1] << 8);
+ //PAGEEXEC
if(*pax_flags & PF_PAGEEXEC)
ei_flags &= ~HF_PAX_PAGEEXEC;
if(*pax_flags & PF_NOPAGEEXEC)
@@ -261,6 +262,7 @@ set_flags(Elf *elf, int *pax_flags)
if((*pax_flags & PF_PAGEEXEC) && (*pax_flags & PF_NOPAGEEXEC))
ei_flags &= ~HF_PAX_PAGEEXEC;
+ //SEGMEXEC
if(*pax_flags & PF_SEGMEXEC)
ei_flags &= ~HF_PAX_SEGMEXEC;
if(*pax_flags & PF_NOSEGMEXEC)
@@ -268,6 +270,7 @@ set_flags(Elf *elf, int *pax_flags)
if((*pax_flags & PF_SEGMEXEC) && (*pax_flags & PF_NOSEGMEXEC))
ei_flags &= ~HF_PAX_SEGMEXEC;
+ //MPROTECT
if(*pax_flags & PF_MPROTECT)
ei_flags &= ~HF_PAX_MPROTECT;
if(*pax_flags & PF_NOMPROTECT)
@@ -275,6 +278,7 @@ set_flags(Elf *elf, int *pax_flags)
if((*pax_flags & PF_MPROTECT) && (*pax_flags & PF_NOMPROTECT))
ei_flags &= ~HF_PAX_MPROTECT;
+ //EMUTRAMP
if(*pax_flags & PF_EMUTRAMP)
ei_flags |= HF_PAX_EMUTRAMP;
if(*pax_flags & PF_NOEMUTRAMP)
@@ -282,6 +286,7 @@ set_flags(Elf *elf, int *pax_flags)
if((*pax_flags & PF_EMUTRAMP) && (*pax_flags & PF_NOEMUTRAMP))
ei_flags &= ~HF_PAX_EMUTRAMP;
+ //RANDMMAP
if(*pax_flags & PF_RANDMMAP)
ei_flags &= ~HF_PAX_RANDMMAP;
if(*pax_flags & PF_NORANDMMAP)
@@ -289,6 +294,7 @@ set_flags(Elf *elf, int *pax_flags)
if((*pax_flags & PF_RANDMMAP) && (*pax_flags & PF_NORANDMMAP))
ei_flags &= ~HF_PAX_RANDMMAP;
+ //RANDEXEC
if(*pax_flags & PF_RANDEXEC)
ei_flags |= HF_PAX_RANDEXEC;
if(*pax_flags & PF_NORANDEXEC)
@@ -311,45 +317,108 @@ set_flags(Elf *elf, int *pax_flags)
if(phdr.p_type == PT_PAX_FLAGS)
{
- //Take and Pp flags and conver them to -
+ //PAGEEXEC
+ if(*pax_flags & PF_PAGEEXEC)
+ {
+ phdr.p_flags |= PF_PAGEEXEC;
+ phdr.p_flags &= ~PF_NOPAGEEXEC;
+ }
+ if(*pax_flags & PF_NOPAGEEXEC)
+ {
+ phdr.p_flags &= ~PF_PAGEEXEC;
+ phdr.p_flags |= PF_NOPAGEEXEC;
+ }
if((*pax_flags & PF_PAGEEXEC) && (*pax_flags & PF_NOPAGEEXEC))
{
- *pax_flags ^= PF_PAGEEXEC;
- *pax_flags ^= PF_NOPAGEEXEC;
+ phdr.p_flags &= ~PF_PAGEEXEC;
+ phdr.p_flags &= ~PF_NOPAGEEXEC;
}
+ //SEGMEXEC
+ if(*pax_flags & PF_SEGMEXEC)
+ {
+ phdr.p_flags |= PF_SEGMEXEC;
+ phdr.p_flags &= ~PF_NOSEGMEXEC;
+ }
+ if(*pax_flags & PF_NOSEGMEXEC)
+ {
+ phdr.p_flags &= ~PF_SEGMEXEC;
+ phdr.p_flags |= PF_NOSEGMEXEC;
+ }
if((*pax_flags & PF_SEGMEXEC) && (*pax_flags & PF_NOSEGMEXEC))
{
- *pax_flags ^= PF_SEGMEXEC;
- *pax_flags ^= PF_NOSEGMEXEC;
+ phdr.p_flags &= ~PF_SEGMEXEC;
+ phdr.p_flags &= ~PF_NOSEGMEXEC;
}
+ //MPROTECT
+ if(*pax_flags & PF_MPROTECT)
+ {
+ phdr.p_flags |= PF_MPROTECT;
+ phdr.p_flags &= ~PF_NOMPROTECT;
+ }
+ if(*pax_flags & PF_NOMPROTECT)
+ {
+ phdr.p_flags &= ~PF_MPROTECT;
+ phdr.p_flags |= PF_NOMPROTECT;
+ }
if((*pax_flags & PF_MPROTECT) && (*pax_flags & PF_NOMPROTECT))
{
- *pax_flags ^= PF_MPROTECT;
- *pax_flags ^= PF_NOMPROTECT;
+ phdr.p_flags &= ~PF_MPROTECT;
+ phdr.p_flags &= ~PF_NOMPROTECT;
}
+ //EMUTRAMP
+ if(*pax_flags & PF_EMUTRAMP)
+ {
+ phdr.p_flags |= PF_EMUTRAMP;
+ phdr.p_flags &= ~PF_NOEMUTRAMP;
+ }
+ if(*pax_flags & PF_NOEMUTRAMP)
+ {
+ phdr.p_flags &= ~PF_EMUTRAMP;
+ phdr.p_flags |= PF_NOEMUTRAMP;
+ }
if((*pax_flags & PF_EMUTRAMP) && (*pax_flags & PF_NOEMUTRAMP))
{
- *pax_flags ^= PF_EMUTRAMP;
- *pax_flags ^= PF_NOEMUTRAMP;
+ phdr.p_flags &= ~PF_EMUTRAMP;
+ phdr.p_flags &= ~PF_NOEMUTRAMP;
}
+ //RANDMMAP
+ if(*pax_flags & PF_RANDMMAP)
+ {
+ phdr.p_flags |= PF_RANDMMAP;
+ phdr.p_flags &= ~PF_NORANDMMAP;
+ }
+ if(*pax_flags & PF_NORANDMMAP)
+ {
+ phdr.p_flags &= ~PF_RANDMMAP;
+ phdr.p_flags |= PF_NORANDMMAP;
+ }
if((*pax_flags & PF_RANDMMAP) && (*pax_flags & PF_NORANDMMAP))
{
- *pax_flags ^= PF_RANDMMAP;
- *pax_flags ^= PF_NORANDMMAP;
+ phdr.p_flags &= ~PF_RANDMMAP;
+ phdr.p_flags &= ~PF_NORANDMMAP;
}
+ //RANDEXEC
+ if(*pax_flags & PF_RANDEXEC)
+ {
+ phdr.p_flags |= PF_RANDEXEC;
+ phdr.p_flags &= ~PF_NORANDEXEC;
+ }
+ if(*pax_flags & PF_NORANDEXEC)
+ {
+ phdr.p_flags &= ~PF_RANDEXEC;
+ phdr.p_flags |= PF_NORANDEXEC;
+ }
if((*pax_flags & PF_RANDEXEC) && (*pax_flags & PF_NORANDEXEC))
{
- *pax_flags ^= PF_RANDEXEC;
- *pax_flags ^= PF_NORANDEXEC;
+ phdr.p_flags &= ~PF_RANDEXEC;
+ phdr.p_flags &= ~PF_NORANDEXEC;
}
- phdr.p_flags = *pax_flags ;
-
if(!gelf_update_phdr(elf, i, &phdr))
error(EXIT_FAILURE, 0, "gelf_update_phdr(): %s", elf_errmsg(elf_errno()));
}
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] proj/elfix:elfix-0.2.x commit in: src/
@ 2011-09-27 18:59 Anthony G. Basile
0 siblings, 0 replies; 3+ messages in thread
From: Anthony G. Basile @ 2011-09-27 18:59 UTC (permalink / raw
To: gentoo-commits
commit: c27eea10b3bc9776b1e0b89b7abed66e689a9735
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 27 18:49:37 2011 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Sep 27 18:59:00 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/elfix.git;a=commit;h=c27eea10
src/paxctl-ng.c: removed unused ei_buf[] and pt_buf[]
---
src/paxctl-ng.c | 7 -------
1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/src/paxctl-ng.c b/src/paxctl-ng.c
index c565ffa..5d92d58 100644
--- a/src/paxctl-ng.c
+++ b/src/paxctl-ng.c
@@ -237,18 +237,11 @@ void
set_flags(Elf *elf, int *pax_flags)
{
GElf_Ehdr ehdr;
- char ei_buf[BUF_SIZE];
uint16_t ei_flags;
GElf_Phdr phdr;
- char pt_buf[BUF_SIZE];
- uint16_t pt_flags;
- char found_pt_pax;
size_t i, phnum;
- memset(ei_buf, 0, BUF_SIZE);
- memset(pt_buf, 0, BUF_SIZE);
-
if(gelf_getehdr(elf, &ehdr) != &ehdr)
error(EXIT_FAILURE, 0, "gelf_getehdr(): %s", elf_errmsg(elf_errno()));
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-09-27 18:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-27 18:01 [gentoo-commits] proj/elfix:elfix-0.2.x commit in: src/ Anthony G. Basile
-- strict thread matches above, loose matches on Subject: below --
2011-09-27 18:59 Anthony G. Basile
2011-09-27 18:00 Anthony G. Basile
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox