aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'paxelf.c')
-rw-r--r--paxelf.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/paxelf.c b/paxelf.c
index 1c15bb2..47613e8 100644
--- a/paxelf.c
+++ b/paxelf.c
@@ -1,7 +1,7 @@
/*
* Copyright 2003-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/paxelf.c,v 1.63 2008/12/30 12:59:42 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/paxelf.c,v 1.64 2009/12/01 05:50:11 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -414,6 +414,15 @@ static pairtype elf_stttypes[] = {
QUERY(STT_FILE),
QUERY(STT_LOPROC),
QUERY(STT_HIPROC),
+ { 0, 0 }
+};
+const char *get_elfstttype(int type)
+{
+ return find_pairtype(elf_stttypes, ELF32_ST_TYPE(type));
+}
+
+/* translate elf STB_ defines */
+static pairtype elf_stbtypes[] = {
QUERY(STB_LOCAL),
QUERY(STB_GLOBAL),
QUERY(STB_WEAK),
@@ -421,9 +430,9 @@ static pairtype elf_stttypes[] = {
QUERY(STB_HIPROC),
{ 0, 0 }
};
-const char *get_elfstttype(int type)
+const char *get_elfstbtype(int type)
{
- return find_pairtype(elf_stttypes, type & 0xF);
+ return find_pairtype(elf_stbtypes, ELF32_ST_BIND(type));
}
/* Read an ELF into memory */