Commit Graph

151 Commits

Author SHA1 Message Date
Serge Lamikhov-Center
937978973f Remove usage of try/catch blocks 2020-08-28 22:38:40 -07:00
Serge Lamikhov-Center
e18e5bc261 Use a header for version information 2020-08-24 10:24:09 -07:00
Serge Lamikhov-Center
c92b6f3fb5 Fix a VS warning 2020-08-23 11:22:34 +03:00
Serge Lamikhov-Center
e00bf98230 Add modinfo to VS project 2020-08-23 09:57:21 +03:00
Serge Lamikhov-Center
761d70da2c Add dump function for .modinfo section 2020-08-22 23:10:11 -07:00
Serge Lamikhov-Center
b4c245f5a8 Add .modinfo section accessor 2020-08-22 15:11:58 -07:00
Serge Lamikhov-Center
9c739b49a0 Reformat sources by using clang-format
It is not perfect (and, probably, it is worser than it was before), but, it is automatic
2020-08-21 07:56:08 -07:00
Serge Lamikhov-Center
46acd5c16d Pass all used vars by reference 2020-08-21 00:55:28 -07:00
Serge Lamikhov-Center
aa4d2c5a74 Substitute memcpy() by std::copy() 2020-08-20 02:13:04 -07:00
Serge Lamikhov-Center
fe17eb40aa Implement swap_symbols() for relocation section.
The function can be used as a callback for arrange_local_symbols()
2020-08-19 22:44:58 -07:00
Serge Lamikhov-Center
d255a35259 Address warnings reported by VS 2020-08-19 23:58:07 +03:00
Serge Lamikhov-Center
c6e5eb0aad Update Copyright period 2020-08-19 13:47:20 -07:00
Serge Lamikhov-Center
6d3d5467a2 Permit substitution of relocation entry by using set_entry() function call 2020-08-19 13:39:15 -07:00
Serge Lamikhov-Center
5a5ba2dc09 Add a callback to arrange_local_symbols() 2020-08-19 07:28:47 -07:00
Serge Lamikhov-Center
8e0b5754e4 arrange_local_symbols() added
ELF standard requires that all STB_LOCAL symbols will go prior others and sh_info entry will contain the number of the local symbols
2020-08-18 12:57:45 -07:00
Serge Lamikhov-Center
d2c3fb6a14 Refactoring - remove unnecessary check 2020-08-15 18:56:13 +03:00
Serge Lamikhov-Center
8d79cc0929 Add function source delimiters 2020-08-15 18:33:50 +03:00
Serge Lamikhov-Center
a59cbf6674 Alighn code with whitespaces 2020-08-08 09:55:42 -07:00
Serge Lamikhov-Center
5f904722f6 New machine numbers added 2020-08-08 08:23:25 -07:00
Serge Lamikhov-Center
b1961db18b Fix compilation warnings in VS 2019 v16.7.0 2020-08-07 20:27:13 +03:00
Serge Lamikhov-Center
a735f412ec Remove unused header 2020-06-10 08:01:20 -07:00
Serge Lamikhov-Center
9cf8821c03 Prevents seg fault described in #42 2020-06-10 06:53:29 -07:00
Serge Lamikhov-Center
b56b93de1b Remove implementation functions from section interface 2020-06-09 23:46:41 -07:00
Pierre Bélissent
6e237576f0 Issue serge1/ELFIO#19: Test case to reproduce, and correction 2020-06-06 22:26:12 +03:00
Serge Lamikhov-Center
453929342f Don't access a note entry in case namesz is less than 1 2020-05-29 05:26:43 -07:00
Serge Lamikhov-Center
a935b5472e The counter type for 'symbol_tables' has been changed to Elf_Xword 2020-05-29 13:54:28 +03:00
Serge Lamikhov-Center
64626605ed Remove tab characters 2020-02-22 18:22:23 +02:00
Serge Lamikhov-Center
3e4a2fabfd Add tests for the new flavor of get_symbol() 2020-02-22 11:31:27 +02:00
Serge Lamikhov-Center
46d081d5df Add autoxxx tools to the ELFIOTest directory 2020-02-15 23:24:20 +02:00
Alfred Bratterud
d8e8a4cbb4 Added get_symbol by value and generic linear search 2020-02-15 23:10:01 +02:00
Serge Lamikhov-Center
15cd4b1bf2 Remove tabs 2019-04-28 09:00:14 +03:00
Gleb Struchalin
15340ddf9c Avoid warning about initialization reorder (-Wreorder) on GCC 2019-04-28 08:57:04 +03:00
Serge Lamikhov-Center
cdafaa0abf Prevent potential dereferencing of NULL pointer 2019-04-19 15:05:50 +03:00
Serge Lamikhov-Center
858b7a3b70 Names and tabs refactoring 2019-04-19 14:52:20 +03:00
Gleb Struchalin
a314b28193 Replaced tabs by spaces 2019-04-19 13:55:00 +03:00
Gleb Struchalin
925af0d3d5 Added overload to elfio::save which accepts std::ostream 2019-04-19 13:55:00 +03:00
Gleb Struchalin
e64acb2b2e Added parentheses in ELF64_R_INFO macro for 's' parameter 2019-04-19 13:55:00 +03:00
Vinicius Rangel
350008420f dynamic_section_accessor#add_entry params updated
Changed useless by-reference params to by-value
which forbids number literals (i.e. DT_*)

Added missing const keyword to std::string& parameter
2019-04-19 09:24:40 +03:00
Serge Lamikhov-Center
cb3bd43ca5 Avoid warning regarding incompatible integer types 2018-11-03 18:11:32 +02:00
Alex Voicu
9f1e1ae164 Fix alignment. 2018-11-02 23:16:14 +02:00
Alex Voicu
144946f753 Add support for AMDGPU specific ELF bits. 2018-11-02 23:16:14 +02:00
Serge Lamikhov-Center
9461ce1167 Fix "Call to virtual function during construction". Thanks to Pavel Kryukov 2018-11-02 23:05:26 +02:00
Pavel I. Kryukov
e4abc190d6 Cast -1 to Elf_Half explicitly to suppress Visual Studio warning 2018-08-25 22:41:06 +03:00
Pavel I. Kryukov
6a2e8c78b0 Avoid hiding local variable by another local variable in elfio::load_sections 2018-08-25 22:40:00 +03:00
Jingxuan He
4b9ff89770 modify get_ordered_segments 2018-05-05 19:32:49 +03:00
Tobias Klauser
37ebcd91b8 Fix two gcc -Wignored-qualifiers warnings
Fix the following two gcc warnings:

elfio/elfio_section.hpp:50:36: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     const size_t get_stream_size() const
                                    ^
elfio/elfio_segment.hpp:99:23: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     get_stream_size() const
2018-05-05 19:30:09 +03:00
alvaro
bc5f17b0fc Fix more NULL dereferences
Crash 7d695153fd8052529d480c2352d4ada33a44bada
2017-10-04 20:47:51 +03:00
alvaro
abab994411 Fix NULL deference for no ELF files
Fix crash 060833f08dc14d1712428742b3cad7af17b36bb7
2017-10-04 20:47:51 +03:00
alvaro
bd5f2128ae Check size for segment
Fix crash b82f05b0b25c8fdc98480e6d76b6d5f9164ae2bc

Running: crash-b82f05b0b25c8fdc98480e6d76b6d5f9164ae2bc
==2850==WARNING: AddressSanitizer failed to allocate 0x400000004000001 bytes
==2850==AddressSanitizer's allocator is terminating the process instead of returning 0
==2850==If you don't like this behavior set allocator_may_return_null=1
==2850==AddressSanitizer CHECK failed: /home/alvaro/tools/llvm/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc:22
1 "((0)) != (0)" (0x0, 0x0)
2017-10-04 20:47:51 +03:00
alvaro
1a3cb25a7c Fix oob read terminating data with 0
Fix crash e3c41070342cf84dea077356ddbb8ebf4326a601

==12073==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6110000003bb at pc 0x0000004c234c bp 0x7fcf6359ec30 sp 0x7fcf6359e3
e0
READ of size 11 at 0x6110000003bb thread T0
    #0 0x4c234b in __interceptor_strlen.part.30 /home/alvaro/tools/llvm/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitize
r_common_interceptors.inc:301
    #1 0x7165e6579d87 in std::char_traits<char>::length(char const*) /build/gcc-multilib/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3
/include/bits/char_traits.h:269
    #2 0x7165e6579d87 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std
::allocator<char> const&) /build/gcc-multilib/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:495
    #3 0x5c3333 in ELFIO::elfio::load_sections(std::istream&) /home/alvaro/fuzzers/elfio/ELFIO/examples/libfuzzer/../../elfio/elfio.hpp
:413:44
2017-10-04 20:47:51 +03:00