f6c0f35e07
members of the ELF Executable Header inside the library-private `struct _Elf' descriptor and only update the underlying Elf{32,64}_Ehdr structure on an elf_update(3) call. These fields of the Ehdr structure are technically `out of bounds' for an application program per the ELF(3) API, but we've seen applications that initialize a new Ehdr structure using memcpy(), messing up the library's invariants. [1] Implement elf_getphnum() and handle ELF objects with more than 64K program header table entries. Reported by: jb [1]
103 lines
1.5 KiB
Plaintext
103 lines
1.5 KiB
Plaintext
#
|
|
# $FreeBSD$
|
|
#
|
|
FBSD_1.0 {
|
|
global:
|
|
elf32_checksum;
|
|
elf32_fsize;
|
|
elf32_getehdr;
|
|
elf32_getphdr;
|
|
elf32_getshdr;
|
|
elf32_newehdr;
|
|
elf32_newphdr;
|
|
elf32_xlatetof;
|
|
elf32_xlatetom;
|
|
elf64_checksum;
|
|
elf64_fsize;
|
|
elf64_getehdr;
|
|
elf64_getphdr;
|
|
elf64_getshdr;
|
|
elf64_newehdr;
|
|
elf64_newphdr;
|
|
elf64_xlatetof;
|
|
elf64_xlatetom;
|
|
elf_begin;
|
|
elf_cntl;
|
|
elf_end;
|
|
elf_errmsg;
|
|
elf_errno;
|
|
elf_fill;
|
|
elf_flagdata;
|
|
elf_flagehdr;
|
|
elf_flagelf;
|
|
elf_flagphdr;
|
|
elf_flagscn;
|
|
elf_flagshdr;
|
|
elf_getarhdr;
|
|
elf_getarsym;
|
|
elf_getbase;
|
|
elf_getdata;
|
|
elf_getident;
|
|
elf_getscn;
|
|
elf_getphnum;
|
|
elf_getshnum;
|
|
elf_getshstrndx;
|
|
elf_hash;
|
|
elf_kind;
|
|
elf_memory;
|
|
elf_ndxscn;
|
|
elf_newdata;
|
|
elf_newscn;
|
|
elf_next;
|
|
elf_nextscn;
|
|
elf_rand;
|
|
elf_rawdata;
|
|
elf_rawfile;
|
|
elf_setshstrndx;
|
|
elf_strptr;
|
|
elf_update;
|
|
elf_version;
|
|
gelf_checksum;
|
|
gelf_fsize;
|
|
gelf_getcap;
|
|
gelf_getclass;
|
|
gelf_getdyn;
|
|
gelf_getehdr;
|
|
gelf_getmove;
|
|
gelf_getphdr;
|
|
gelf_getrel;
|
|
gelf_getrela;
|
|
gelf_getshdr;
|
|
gelf_getsym;
|
|
gelf_getsyminfo;
|
|
gelf_getsymshndx;
|
|
gelf_newehdr;
|
|
gelf_newphdr;
|
|
gelf_update_cap;
|
|
gelf_update_dyn;
|
|
gelf_update_ehdr;
|
|
gelf_update_move;
|
|
gelf_update_phdr;
|
|
gelf_update_rel;
|
|
gelf_update_rela;
|
|
gelf_update_shdr;
|
|
gelf_update_sym;
|
|
gelf_update_syminfo;
|
|
gelf_update_symshndx;
|
|
gelf_xlatetof;
|
|
gelf_xlatetom;
|
|
local:
|
|
*;
|
|
};
|
|
|
|
#
|
|
# Private symbols, mostly test hooks
|
|
#
|
|
FBSDprivate {
|
|
global:
|
|
_libelf_set_error;
|
|
_libelf_get_max_error;
|
|
_libelf_get_no_error_message;
|
|
_libelf_get_unknown_error_message;
|
|
};
|