summaryrefslogtreecommitdiffstats
path: root/lib/libelf/elf_shstrndx.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libelf/elf_shstrndx.c')
-rw-r--r--lib/libelf/elf_shstrndx.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/libelf/elf_shstrndx.c b/lib/libelf/elf_shstrndx.c
index f4f502d..2c8b1b4 100644
--- a/lib/libelf/elf_shstrndx.c
+++ b/lib/libelf/elf_shstrndx.c
@@ -32,8 +32,8 @@ __FBSDID("$FreeBSD$");
#include "_libelf.h"
-int
-elf_getshstrndx(Elf *e, size_t *strndx)
+static int
+_libelf_getshdrstrndx(Elf *e, size_t *strndx)
{
void *eh;
int ec;
@@ -41,15 +41,27 @@ elf_getshstrndx(Elf *e, size_t *strndx)
if (e == NULL || e->e_kind != ELF_K_ELF ||
((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) {
LIBELF_SET_ERROR(ARGUMENT, 0);
- return (0);
+ return (-1);
}
if ((eh = _libelf_ehdr(e, ec, 0)) == NULL)
- return (0);
+ return (-1);
*strndx = e->e_u.e_elf.e_strndx;
- return (1);
+ return (0);
+}
+
+int
+elf_getshdrstrndx(Elf *e, size_t *strndx)
+{
+ return (_libelf_getshdrstrndx(e, strndx));
+}
+
+int
+elf_getshstrndx(Elf *e, size_t *strndx) /* Deprecated API. */
+{
+ return (_libelf_getshdrstrndx(e, strndx) >= 0);
}
int
OpenPOWER on IntegriCloud