2017-09-27 Wolfgang Thaller <wolfgang.thaller@gmx.net> Gut the whole thing and keep just libelf, with a very simple CMakeLists.txt for building. That's all I need :-). 2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com> * elf.h: Add known type in notes segment descriptor for HTM SPRs. 2017-02-17 Ulf hermann <ulf.hermann@qt.io> * Makefile.am: Add libelf_so_DEPS, which include libeu.a, libelf_so_LIBS. (libelf_so_LDLIBS): Add $(libelf_so_DEPS). (libelf.so$(EXEEXT): Use $(libelf_so_LIBS), require libelf.map from the right directory. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * libelfP.h: Don't include config.h. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * elf_begin.c: Use F_GETFD rather than F_GETFL. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * libelf.h: Define macros for various function attributes and use them. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * elf_update.c: Set ELF_F_MMAPPED flag if we mmap from elf_update. 2017-04-19 Mark Wielaard <mark@klomp.org> * elf_getarsym.c (elf_getarsym): Initialize n to zero. 2017-03-27 Mark Wielaard <mark@klomp.org> * elf32_updatefile.c (updatemmap): Always update last_positition. (updatefile): Likewise. 2017-03-24 Mark Wielaard <mark@klomp.org> * elf_compress.c (__libelf_decompress): Check insane compression ratios before trying to allocate output buffer. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> Mark Wielaard <mjw@redhat.com> * gelf.h (gelf_newehdr): Change return type to void *. (gelf_newphdr): Likewise. * gelf_newehdr.c (gelf_newehdr): Likewise. * gelf_newphdr.c (gelf_newphdr): Likewise. 2016-10-21 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_set_rawdata_wrlock): Sanity check offset and size before trying to malloc and read data. 2016-10-26 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_file): Always set maxsize when parent == NULL. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> * elf_getarsym.c (elf_getarsym): Open code rawmemchr when not available. * elf_strptr.c: Include stdbool.h. (validate_str): New function. (elf_strptr): Use validate_str instead of memrchr. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> * elf32_updatefile.c: Remove sys/param.h include. * elf32_updatenull.c: Likewise. Add system.h include. * elf_begin.c: Remove sys/param.h. * elf_compress: Likewise. Add system.h include. (MAX): Remove definition. 2016-08-07 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_reset_rawdata): Check scn->flags and free rawdata_base when malloced. Set ELF_F_MALLOCED for scn->flags. * elf_end.c (elf_end): Check scn->flags and free rawdata_base if malloced. * libelfP.h (struct Elf_Scn): Document flags ELF_F_MALLOCED usage. 2016-07-06 Mark Wielaard <mjw@redhat.com> * elf-knowledge.h (SH_FLAGS_COMBINE): Removed. (SH_FLAGS_IMPORTANT): Likewise. 2016-07-06 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Ignore e_type when updating phdrs. * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): Only do sanity checking if phdrs haven't been read in yet. 2016-06-24 John Ogness <john.ogness@linutronix.de> * elf32_updatenull.c (updatenull_wrlock): Find first section. * elf_nextscn.c (elf_nextscn): When scn is NULL start from 0th section. 2016-06-28 Richard Henderson <rth@redhat.com> * elf.h: Update from glibc. Add lots of new EM_* definitions. 2016-04-14 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_compress): Free out_buf if deflateInit fails. 2016-02-13 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Free scns when out of memory. 2016-01-28 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add new i386 and x86_64 relocations. 2016-02-12 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add NT_ARM_SYSTEM_CALL. 2016-02-04 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_set_rawdata_wrlock): Don't adjust align for SHT_NOBITS sections. 2016-01-22 Chih-Hung Hsieh <chh@google.com> * elf_compress.c (__libelf_compress): Move nested function 'do_deflate_cleanup' to file scope to compile with clang. * elf_strptr.c (elf_strptr): Move nested function 'get_zdata' to file scope to compile with clang. 2016-01-13 Mark Wielaard <mjw@redhat.com> * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the associated ELF compression types/defines. 2015-11-26 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_decompress_elf): New function, extracted from... (elf_compress): here. Check zdata_base use __libelf_decompress_elf. * elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and use zdata. * libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align. (__libelf_decompress_elf): New internal function definition. 2015-10-21 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_a_SOURCES): Add elf_compress.c and elf_compress_gnu.c. * elf_compress.c: New file. * elf_compress_gnu.c: Likewise. * elf_begin.c (file_read_elf): Make a writable copy of the shdrs for ELF_C_READ_MMAP. * elf_end.c (elf_end): Free zdata_base. * elf_error.c: Add ELF_E_ALREADY_COMPRESSED, ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and ELF_E_DECOMPRESS_ERROR. * elf_data.c (__libelf_data_type): New internal function extracted from convert_data. (convert_data): Handle SHF_COMPRESSED. * elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against uncompressed section data size if SHF_COMPRESSED. * elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for ELF_C_READ_MMAP. * libelf.h: Define elf_compress and elf_compress_gnu. * libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu. * libelfP.h: Add ELF_E_ALREADY_COMPRESSED, ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type. (__libelf_compress): New internal function definition. (__libelf_decompress): Likewise. (__libelf_reset_rawdata): Likewise. (__libelf_data_type): Likewise. (struct Elf_Scn): Add zdata_base. 2015-11-19 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c, elf64_getchdr.c and gelf_getchdr.c. (noinst_HEADERS): Add chdr_xlate.h. * abstract.h: Define Chdr32 and Chdr64. * chdr_xlate.h: New file. * elf32_getchdr.c: New file. * elf64_getchdr.c: New file. * elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE and ELF_E_INVALID_SECTION_FLAGS. * elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to ELF_T_CHDR for SHF_COMPRESSED sections. * exttypes.h: Add Chdr32 and Chdr64. * gelf.h (GElf_Chdr): New typedef. (gelf_getchdr): New function definition. * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR. * gelf_getchdr.c: New file. * gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr. * gelf_xlate.h: Add Chdr. * libelf.h (Elf_Type): Add ELF_T_CHDR. (elf32_getchdr): New function definition. (elf64_getchdr): Likewise. * libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr, elf64_getchdr and gelf_getchdr. * libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE and ELF_E_INVALID_SECTION_FLAGS. 2015-10-16 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_so_LDLIBS): Add -lz. 2015-10-14 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add section compression constants and structures. 2015-10-20 Jose E. Marchesi <jose.marchesi@oracle.com> * elf_begin.c (get_shnum): Elf64_Shdr.sh_size is an Elf64_Xword. Fix the size argument to pread_retry. 2015-10-13 Chih-Hung Hsieh <chh@google.com> * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Move nested function 'fill_mmap' to file scope. * elf_begin.c (elf_begin): Move nested function 'lock_dup_elf' to file scope. 2015-10-09 Josh Stone <jistone@redhat.com> * libelf.h: Replace loff_t with int64_t throughout. 2015-10-05 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Only use posix_fallocate when using mmap. Only report failure when errno is ENOSPC. 2015-10-09 Josh Stone <jistone@redhat.com> * libelfP.h (struct Elf): Replace off64_t with off_t. * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise. 2015-10-05 Chih-Hung Hsieh <chh@google.com> * elf_getarsym.c (elf_getarsym): Do not use union of variable length arrays. 2015-10-05 Josh Stone <jistone@redhat.com> * Makefile.am (libelf.so): Add AM_V_CCLD and AM_V_at silencers. 2015-09-24 Jose E. Marchesi <jose.marchesi@oracle.com> * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid relocation overflows in some platforms. 2015-09-29 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (default_ehdr): Set e_version when EV_NONE. (updatenull_wrlock): Always set e_shentsize. 2015-09-23 Mark Wielaard <mjw@redhat.com> * elf32_getehdr.c (getehdr_wrlock): Mark as internal_function. * elf32_getshdr.c (getshdr_rdlock): Likewise. (getshdr_wrlock): Likewise. * elf_error.c (__libelf_seterrno): Likewise. * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Likewise. (__elf_getphdrnum_chk_rdlock): Likewise. * elf_getshdrnum.c (__elf_getphdrnum_rdlock): Likewise. (__elf_getphdrnum_chk_rdlock): Likewise. * elf_getshdrnum.c (__elf_getshdrnum_rdlock): Likewise. * elf_readall.c (__libelf_readall): Likewise. * gelf_getehdr.c (__gelf_getehdr_rdlock): Likewise. 2015-09-22 Mark Wielaard <mjw@redhat.com> * *.c: Remove old-style function definitions. 2015-06-22 Mark Wielaard <mjw@redhat.com> * dl-hash.h: Update from glibc. 2015-06-18 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatefile): Always free shdr_data and scns when allocated on failure paths. 2015-06-18 Mark Wielaard <mjw@redhat.com> * nlist.c (nlist): Check symscn shdr exists before use. 2015-06-16 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Always also use ftruncate before posix_fallocate to make sure file has the right size. 2015-06-04 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_type_aligns): Add entries for ELF_T_EHDR, ELF_T_OFF, ELF_T_PHDR, ELF_T_SHDR, ELF_T_SWORD, ELF_T_XWORD, ELF_T_SXWORD, ELF_T_GNUHASH, ELF_T_AUXV. * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check alignment of rawdata against requested type. 2015-06-02 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (convert_data): Make sure source data is properly aligned for type before calling actual conversion function. 2015-06-04 Mark Wielaard <mjw@redhat.com> * elf_begin.c (get_shnum): Check alignment of Shdr, not Ehdr before direct access. 2015-06-02 Mark Wielaard <mjw@redhat.com> * elf_begin.c (file_read_elf): Split checks for ehdr and shdr alignment, drop phdr alignment check. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf32_getshdr.c (load_shdr_wrlock): Allocate shdrs with malloc, not alloca and free after conversion when a copy needs to be made. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf32_getphdr.c (getphdr_wrlock): Allocate phdrs with malloc, not alloca and free after conversion when a copy needs to be made. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with malloc, not alloca also in !ALLOW_UNALIGNED case. 2015-05-30 Mark Wielaard <mjw@redhat.com> * gelf_xlate.c (elf_cvt_Byte): Only call memmove with non-zero size. 2015-05-30 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Only call mempcpy and update last_position when d_size is non-zero. 2015-05-17 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatefile): Allocate shdr_data and scns with malloc, not alloca. Free after writing section headers. 2015-05-16 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Allocate temporary shdr storage with malloc, not alloca. Free after writing section header. 2015-05-16 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with malloc, not alloca. Call free after out. 2015-05-14 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Use posix_fallocate instead of ftruncate to extend file if necessary. 2015-05-13 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (default_ehdr): If e_phnum is zero then set e_phoff also to zero. 2015-05-12 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Check that sh_addralign is a powerof2. * elf_getdata.c (__libelf_set_rawdata_wrlock): Clamp large d_aligns to the elf image offset. 2015-05-12 Mark Wielaard <mjw@redhat.com> * elf32_newphdr.c (newphdr): Call __libelf_seterrno with ELF_E_INVALID_INDEX before failing. Check whether section zero shdr actually exists if we need to put extended phnum in section zero. 2015-05-08 Mark Wielaard <mjw@redhat.com> * nlist.c (nlist): Call gelf_fsize with EV_CURRENT. 2015-01-03 Mark Wielaard <mjw@redhat.com> * version_xlate.h (elf_cvt_Verdef): Use memmove to copy src to dest. (elf_cvt_Verneed): Likewise. 2015-03-28 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. 2015-03-23 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Don't extend size with SHT_NOBITS sh_offset. 2015-02-18 Mark Wielaard <mjw@redhat.com> * libelfP.h (__libelf_set_data_list_rdlock): Make internal_function. 2015-02-07 Jan Kratochvil <jan.kratochvil@redhat.com> * elf32_updatenull.c (__elfw2(LIBELFBITS,updatenull_wrlock)): Consider sh_addralign 0 as 1. 2015-01-22 Mark Wielaard <mjw@redhat.com> * elf_strptr (elf_strptr): Make sure returned string is NUL terminated. 2015-01-21 Mark Wielaard <mjw@redhat.com> * elf_strptr.c (elf_strptr): Check data_list_rear == NULL instead of rawdata_base != NULL before using rawdata directly. 2015-01-20 Mark Wielaard <mjw@redhat.com> * libelfP.h (__elf_strptr_internal): New function declaration. * elf_getdata.c (__libelf_set_data_list_rdlock): New internal function extracted from... (__elf_getdata_rdlock): ... here. * elf_newdata.c (elf_newdata): Check scn->rawdata_base and update datalist if necessary. 2015-01-20 Mark Wielaard <mjw@redhat.com> * elf_strptr.c (elf_strptr): Call __elf[32|64]_getshdr_rdlock if necessary. 2014-12-30 Mark Wielaard <mjw@redhat.com> * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): New function. (elf_getphdrnum): Call __elf_getphdrnum_chk_rdlock. * gelf_getphdr (gelf_getphdr): Call __elf_getphdrnum_chk_rdlock and always check ndx against phnum. * libelfP.h (__elf_getphdrnum_chk_rdlock): New internal function. 2014-12-25 Mark Wielaard <mjw@redhat.com> * elf_begin.c (__libelf_next_arhdr_wrlock): ar_size cannot be negative. Include start_offset in maxsize. 2014-12-28 Alexander Cherepanov <cherepan@mccme.ru> * elf_begin.c (read_long_names): Don't miss '/' right after another '/'. Fixes a dir traversal vuln in ar extraction. 2014-12-18 Ulrich Drepper <drepper@gmail.com> * Makefile.am: Suppress output of textrel_check command. 2014-12-16 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Make sure long_names len fits in mapped ELF file. 2014-12-15 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Check index_size doesn't overflow. 2014-12-15 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Clear any garbage left in the name table. 2014-12-11 Mark Wielaard <mjw@redhat.com> * elf_begin.c (file_read_elf): Correct ELF64 section offset check. 2014-12-11 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Check for offset overflow. (__libelf_next_arhdr_wrlock): Likewise. Sanity check the ar_size. Don't allow it to go beyond end of file. 2014-12-09 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Make sure n * w doesn't overflow. 2014-11-27 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf.so): Use textrel_check. 2014-11-23 Mark Wielaard <mjw@redhat.com> * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Change signed overflow check to unsigned. 2014-11-23 Mark Wielaard <mjw@redhat.com> Lines 1–500 of 1493. Load more
2017-09-27 Wolfgang Thaller <wolfgang.thaller@gmx.net> Gut the whole thing and keep just libelf, with a very simple CMakeLists.txt for building. That's all I need :-). 2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com> * elf.h: Add known type in notes segment descriptor for HTM SPRs. 2017-02-17 Ulf hermann <ulf.hermann@qt.io> * Makefile.am: Add libelf_so_DEPS, which include libeu.a, libelf_so_LIBS. (libelf_so_LDLIBS): Add $(libelf_so_DEPS). (libelf.so$(EXEEXT): Use $(libelf_so_LIBS), require libelf.map from the right directory. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * libelfP.h: Don't include config.h. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * elf_begin.c: Use F_GETFD rather than F_GETFL. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * libelf.h: Define macros for various function attributes and use them. 2017-04-20 Ulf Hermann <ulf.hermann@qt.io> * elf_update.c: Set ELF_F_MMAPPED flag if we mmap from elf_update. 2017-04-19 Mark Wielaard <mark@klomp.org> * elf_getarsym.c (elf_getarsym): Initialize n to zero. 2017-03-27 Mark Wielaard <mark@klomp.org> * elf32_updatefile.c (updatemmap): Always update last_positition. (updatefile): Likewise. 2017-03-24 Mark Wielaard <mark@klomp.org> * elf_compress.c (__libelf_decompress): Check insane compression ratios before trying to allocate output buffer. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> Mark Wielaard <mjw@redhat.com> * gelf.h (gelf_newehdr): Change return type to void *. (gelf_newphdr): Likewise. * gelf_newehdr.c (gelf_newehdr): Likewise. * gelf_newphdr.c (gelf_newphdr): Likewise. 2016-10-21 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_set_rawdata_wrlock): Sanity check offset and size before trying to malloc and read data. 2016-10-26 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_file): Always set maxsize when parent == NULL. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> * elf_getarsym.c (elf_getarsym): Open code rawmemchr when not available. * elf_strptr.c: Include stdbool.h. (validate_str): New function. (elf_strptr): Use validate_str instead of memrchr. 2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> * elf32_updatefile.c: Remove sys/param.h include. * elf32_updatenull.c: Likewise. Add system.h include. * elf_begin.c: Remove sys/param.h. * elf_compress: Likewise. Add system.h include. (MAX): Remove definition. 2016-08-07 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_reset_rawdata): Check scn->flags and free rawdata_base when malloced. Set ELF_F_MALLOCED for scn->flags. * elf_end.c (elf_end): Check scn->flags and free rawdata_base if malloced. * libelfP.h (struct Elf_Scn): Document flags ELF_F_MALLOCED usage. 2016-07-06 Mark Wielaard <mjw@redhat.com> * elf-knowledge.h (SH_FLAGS_COMBINE): Removed. (SH_FLAGS_IMPORTANT): Likewise. 2016-07-06 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Ignore e_type when updating phdrs. * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): Only do sanity checking if phdrs haven't been read in yet. 2016-06-24 John Ogness <john.ogness@linutronix.de> * elf32_updatenull.c (updatenull_wrlock): Find first section. * elf_nextscn.c (elf_nextscn): When scn is NULL start from 0th section. 2016-06-28 Richard Henderson <rth@redhat.com> * elf.h: Update from glibc. Add lots of new EM_* definitions. 2016-04-14 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_compress): Free out_buf if deflateInit fails. 2016-02-13 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Free scns when out of memory. 2016-01-28 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add new i386 and x86_64 relocations. 2016-02-12 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add NT_ARM_SYSTEM_CALL. 2016-02-04 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_set_rawdata_wrlock): Don't adjust align for SHT_NOBITS sections. 2016-01-22 Chih-Hung Hsieh <chh@google.com> * elf_compress.c (__libelf_compress): Move nested function 'do_deflate_cleanup' to file scope to compile with clang. * elf_strptr.c (elf_strptr): Move nested function 'get_zdata' to file scope to compile with clang. 2016-01-13 Mark Wielaard <mjw@redhat.com> * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the associated ELF compression types/defines. 2015-11-26 Mark Wielaard <mjw@redhat.com> * elf_compress.c (__libelf_decompress_elf): New function, extracted from... (elf_compress): here. Check zdata_base use __libelf_decompress_elf. * elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and use zdata. * libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align. (__libelf_decompress_elf): New internal function definition. 2015-10-21 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_a_SOURCES): Add elf_compress.c and elf_compress_gnu.c. * elf_compress.c: New file. * elf_compress_gnu.c: Likewise. * elf_begin.c (file_read_elf): Make a writable copy of the shdrs for ELF_C_READ_MMAP. * elf_end.c (elf_end): Free zdata_base. * elf_error.c: Add ELF_E_ALREADY_COMPRESSED, ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and ELF_E_DECOMPRESS_ERROR. * elf_data.c (__libelf_data_type): New internal function extracted from convert_data. (convert_data): Handle SHF_COMPRESSED. * elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against uncompressed section data size if SHF_COMPRESSED. * elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for ELF_C_READ_MMAP. * libelf.h: Define elf_compress and elf_compress_gnu. * libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu. * libelfP.h: Add ELF_E_ALREADY_COMPRESSED, ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type. (__libelf_compress): New internal function definition. (__libelf_decompress): Likewise. (__libelf_reset_rawdata): Likewise. (__libelf_data_type): Likewise. (struct Elf_Scn): Add zdata_base. 2015-11-19 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c, elf64_getchdr.c and gelf_getchdr.c. (noinst_HEADERS): Add chdr_xlate.h. * abstract.h: Define Chdr32 and Chdr64. * chdr_xlate.h: New file. * elf32_getchdr.c: New file. * elf64_getchdr.c: New file. * elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE and ELF_E_INVALID_SECTION_FLAGS. * elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to ELF_T_CHDR for SHF_COMPRESSED sections. * exttypes.h: Add Chdr32 and Chdr64. * gelf.h (GElf_Chdr): New typedef. (gelf_getchdr): New function definition. * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR. * gelf_getchdr.c: New file. * gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr. * gelf_xlate.h: Add Chdr. * libelf.h (Elf_Type): Add ELF_T_CHDR. (elf32_getchdr): New function definition. (elf64_getchdr): Likewise. * libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr, elf64_getchdr and gelf_getchdr. * libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE and ELF_E_INVALID_SECTION_FLAGS. 2015-10-16 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf_so_LDLIBS): Add -lz. 2015-10-14 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. Add section compression constants and structures. 2015-10-20 Jose E. Marchesi <jose.marchesi@oracle.com> * elf_begin.c (get_shnum): Elf64_Shdr.sh_size is an Elf64_Xword. Fix the size argument to pread_retry. 2015-10-13 Chih-Hung Hsieh <chh@google.com> * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Move nested function 'fill_mmap' to file scope. * elf_begin.c (elf_begin): Move nested function 'lock_dup_elf' to file scope. 2015-10-09 Josh Stone <jistone@redhat.com> * libelf.h: Replace loff_t with int64_t throughout. 2015-10-05 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Only use posix_fallocate when using mmap. Only report failure when errno is ENOSPC. 2015-10-09 Josh Stone <jistone@redhat.com> * libelfP.h (struct Elf): Replace off64_t with off_t. * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise. 2015-10-05 Chih-Hung Hsieh <chh@google.com> * elf_getarsym.c (elf_getarsym): Do not use union of variable length arrays. 2015-10-05 Josh Stone <jistone@redhat.com> * Makefile.am (libelf.so): Add AM_V_CCLD and AM_V_at silencers. 2015-09-24 Jose E. Marchesi <jose.marchesi@oracle.com> * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid relocation overflows in some platforms. 2015-09-29 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (default_ehdr): Set e_version when EV_NONE. (updatenull_wrlock): Always set e_shentsize. 2015-09-23 Mark Wielaard <mjw@redhat.com> * elf32_getehdr.c (getehdr_wrlock): Mark as internal_function. * elf32_getshdr.c (getshdr_rdlock): Likewise. (getshdr_wrlock): Likewise. * elf_error.c (__libelf_seterrno): Likewise. * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Likewise. (__elf_getphdrnum_chk_rdlock): Likewise. * elf_getshdrnum.c (__elf_getphdrnum_rdlock): Likewise. (__elf_getphdrnum_chk_rdlock): Likewise. * elf_getshdrnum.c (__elf_getshdrnum_rdlock): Likewise. * elf_readall.c (__libelf_readall): Likewise. * gelf_getehdr.c (__gelf_getehdr_rdlock): Likewise. 2015-09-22 Mark Wielaard <mjw@redhat.com> * *.c: Remove old-style function definitions. 2015-06-22 Mark Wielaard <mjw@redhat.com> * dl-hash.h: Update from glibc. 2015-06-18 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatefile): Always free shdr_data and scns when allocated on failure paths. 2015-06-18 Mark Wielaard <mjw@redhat.com> * nlist.c (nlist): Check symscn shdr exists before use. 2015-06-16 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Always also use ftruncate before posix_fallocate to make sure file has the right size. 2015-06-04 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (__libelf_type_aligns): Add entries for ELF_T_EHDR, ELF_T_OFF, ELF_T_PHDR, ELF_T_SHDR, ELF_T_SWORD, ELF_T_XWORD, ELF_T_SXWORD, ELF_T_GNUHASH, ELF_T_AUXV. * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check alignment of rawdata against requested type. 2015-06-02 Mark Wielaard <mjw@redhat.com> * elf_getdata.c (convert_data): Make sure source data is properly aligned for type before calling actual conversion function. 2015-06-04 Mark Wielaard <mjw@redhat.com> * elf_begin.c (get_shnum): Check alignment of Shdr, not Ehdr before direct access. 2015-06-02 Mark Wielaard <mjw@redhat.com> * elf_begin.c (file_read_elf): Split checks for ehdr and shdr alignment, drop phdr alignment check. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf32_getshdr.c (load_shdr_wrlock): Allocate shdrs with malloc, not alloca and free after conversion when a copy needs to be made. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf32_getphdr.c (getphdr_wrlock): Allocate phdrs with malloc, not alloca and free after conversion when a copy needs to be made. 2015-05-31 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with malloc, not alloca also in !ALLOW_UNALIGNED case. 2015-05-30 Mark Wielaard <mjw@redhat.com> * gelf_xlate.c (elf_cvt_Byte): Only call memmove with non-zero size. 2015-05-30 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Only call mempcpy and update last_position when d_size is non-zero. 2015-05-17 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatefile): Allocate shdr_data and scns with malloc, not alloca. Free after writing section headers. 2015-05-16 Mark Wielaard <mjw@redhat.com> * elf32_updatefile.c (updatemmap): Allocate temporary shdr storage with malloc, not alloca. Free after writing section header. 2015-05-16 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with malloc, not alloca. Call free after out. 2015-05-14 Mark Wielaard <mjw@redhat.com> * elf_update.c (write_file): Use posix_fallocate instead of ftruncate to extend file if necessary. 2015-05-13 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (default_ehdr): If e_phnum is zero then set e_phoff also to zero. 2015-05-12 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Check that sh_addralign is a powerof2. * elf_getdata.c (__libelf_set_rawdata_wrlock): Clamp large d_aligns to the elf image offset. 2015-05-12 Mark Wielaard <mjw@redhat.com> * elf32_newphdr.c (newphdr): Call __libelf_seterrno with ELF_E_INVALID_INDEX before failing. Check whether section zero shdr actually exists if we need to put extended phnum in section zero. 2015-05-08 Mark Wielaard <mjw@redhat.com> * nlist.c (nlist): Call gelf_fsize with EV_CURRENT. 2015-01-03 Mark Wielaard <mjw@redhat.com> * version_xlate.h (elf_cvt_Verdef): Use memmove to copy src to dest. (elf_cvt_Verneed): Likewise. 2015-03-28 Mark Wielaard <mjw@redhat.com> * elf.h: Update from glibc. 2015-03-23 Mark Wielaard <mjw@redhat.com> * elf32_updatenull.c (updatenull_wrlock): Don't extend size with SHT_NOBITS sh_offset. 2015-02-18 Mark Wielaard <mjw@redhat.com> * libelfP.h (__libelf_set_data_list_rdlock): Make internal_function. 2015-02-07 Jan Kratochvil <jan.kratochvil@redhat.com> * elf32_updatenull.c (__elfw2(LIBELFBITS,updatenull_wrlock)): Consider sh_addralign 0 as 1. 2015-01-22 Mark Wielaard <mjw@redhat.com> * elf_strptr (elf_strptr): Make sure returned string is NUL terminated. 2015-01-21 Mark Wielaard <mjw@redhat.com> * elf_strptr.c (elf_strptr): Check data_list_rear == NULL instead of rawdata_base != NULL before using rawdata directly. 2015-01-20 Mark Wielaard <mjw@redhat.com> * libelfP.h (__elf_strptr_internal): New function declaration. * elf_getdata.c (__libelf_set_data_list_rdlock): New internal function extracted from... (__elf_getdata_rdlock): ... here. * elf_newdata.c (elf_newdata): Check scn->rawdata_base and update datalist if necessary. 2015-01-20 Mark Wielaard <mjw@redhat.com> * elf_strptr.c (elf_strptr): Call __elf[32|64]_getshdr_rdlock if necessary. 2014-12-30 Mark Wielaard <mjw@redhat.com> * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): New function. (elf_getphdrnum): Call __elf_getphdrnum_chk_rdlock. * gelf_getphdr (gelf_getphdr): Call __elf_getphdrnum_chk_rdlock and always check ndx against phnum. * libelfP.h (__elf_getphdrnum_chk_rdlock): New internal function. 2014-12-25 Mark Wielaard <mjw@redhat.com> * elf_begin.c (__libelf_next_arhdr_wrlock): ar_size cannot be negative. Include start_offset in maxsize. 2014-12-28 Alexander Cherepanov <cherepan@mccme.ru> * elf_begin.c (read_long_names): Don't miss '/' right after another '/'. Fixes a dir traversal vuln in ar extraction. 2014-12-18 Ulrich Drepper <drepper@gmail.com> * Makefile.am: Suppress output of textrel_check command. 2014-12-16 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Make sure long_names len fits in mapped ELF file. 2014-12-15 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Check index_size doesn't overflow. 2014-12-15 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Clear any garbage left in the name table. 2014-12-11 Mark Wielaard <mjw@redhat.com> * elf_begin.c (file_read_elf): Correct ELF64 section offset check. 2014-12-11 Mark Wielaard <mjw@redhat.com> * elf_begin.c (read_long_names): Check for offset overflow. (__libelf_next_arhdr_wrlock): Likewise. Sanity check the ar_size. Don't allow it to go beyond end of file. 2014-12-09 Mark Wielaard <mjw@redhat.com> * elf_getarsym.c (elf_getarsym): Make sure n * w doesn't overflow. 2014-11-27 Mark Wielaard <mjw@redhat.com> * Makefile.am (libelf.so): Use textrel_check. 2014-11-23 Mark Wielaard <mjw@redhat.com> * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Change signed overflow check to unsigned. 2014-11-23 Mark Wielaard <mjw@redhat.com>