Commit Graph

511 Commits

Author SHA1 Message Date
Serge Lamikhov-Center
413b130341 Revert the change of the previous commit 2022-11-19 18:31:18 +02:00
Sam James
a52cccfd7f tests: allow using system gtest copy
Distributions often do builds with no network access available
for both security reasons and also to ensure reproducibility.

This change tells CMake to query the system for a copy of gtest,
but if it's not available, it'll fall back to downloading via
FetchContent.
2022-11-19 13:03:59 +02:00
Serge Lamikhov-Center
a04810f126 Don't build tests by default. Set ELFIO_BUILD_TESTS=ON 2022-11-18 21:39:46 +02:00
Serge Lamikhov-Center
d8b71ebc91 Make more const variables 2022-11-14 16:33:50 +02:00
Serge Lamikhov-Center
6c5f34ae3e Add tests for lazy load 2022-11-14 15:17:33 +02:00
Serge Lamikhov-Center
9827eac948 Implement 'lazy' load for sections 2022-11-13 00:05:25 +02:00
Serge Lamikhov-Center
7c0abb1785 'noexcept' is added to section and segment API 2022-11-12 19:03:39 +02:00
Serge Lamikhov-Center
94505dd637 Add 'lazy' load for own opened streams 2022-11-12 18:19:48 +02:00
Serge Lamikhov-Center
4320ea915e 'noexept' added to upper level API members 2022-11-12 17:00:08 +02:00
Serge Lamikhov-Center
ad8b641f96 Lazy load segment data - load data upon request 2022-11-11 17:49:59 +02:00
Serge Lamikhov-Center
ef56f39379 Remove redundant member initialization 2022-11-11 16:46:49 +02:00
Serge Lamikhov-Center
8409f20a7f Remove output to std::cerr 2022-11-11 01:09:12 +02:00
Serge Lamikhov-Center
705a91c568 Use const referencies in set_xxx arguments 2022-11-10 22:37:55 +02:00
Serge Lamikhov-Center
755f81351f Generilize the section compression calls 2022-11-10 19:26:05 +02:00
Nathan Strong
7608269069 Externalize zlib dependency
== DETAILS

- define an interface/abstract class for zlib implementation
- update the code to reference the implementation, remove zlib dependency
- use constructor injection to provide implementations to elfio
- add a test to validate the injected object gets used properly
`
2022-11-04 18:12:15 +02:00
Nathan Strong
04985836db fix mismatched allocator warning 2022-11-04 18:12:15 +02:00
Nathan Strong
ac542cbb8b Add support for writing RPL/RPX
== DETAILS
Honor the compression flag and write compressed section data.
2022-11-04 18:12:15 +02:00
Nathan Strong
582d929d9d Add support for reading Wii U RPX/RPL
== DETAILS
The Wii U uses a slightly customized ELF format which uses
zlib compression on certain section types.

This commit adds the following:
- add `SHT_` constants for the custom ELF sections
- add `SHF_RPX_DEFLATE` flag used to denote a compressed section
- add code in the section `load()` method to detect the `SHF_RPX_DEFLATE` flag
  and decompress the section
2022-11-04 18:12:15 +02:00
Serge Lamikhov-Center
1df77b2495 A tiny refactoring according to SonarLint 2022-10-16 18:43:18 +03:00
Serge Lamikhov-Center
924732c835 Just VSCode settings 2022-09-29 16:33:35 +03:00
Serge Lamikhov-Center
619c9b6884 Apply advices given by clang-tidy 2022-09-28 20:09:39 +03:00
tgotic
19bfbd5825 Additional SHF flags 2022-09-26 15:34:01 +03:00
Serge Lamikhov-Center
766f5e4dda Address more warnings reported by SonarLint 2022-09-23 17:54:24 +03:00
tgotic
c546c16222 New types and OS/ABI in dump
Added some types and strings, table for OS/ABI, added OS/ABI and ABI version to dump
2022-09-22 16:47:41 +03:00
Serge Lamikhov-Center
cccc78a37b Add 'explicit' keyword 2022-09-17 09:26:05 +03:00
Serge Lamikhov-Center
f21f8ad533 More refactoring 2022-09-16 20:51:20 +03:00
Serge Lamikhov-Center
b57b08409b More refactoring reported by SonarLint 2022-09-16 20:47:27 +03:00
bladchan
b996977925 fix alloc-dealloc-mismatch reported in ASAN 2022-09-04 21:20:43 +03:00
Serge Lamikhov-Center
5468d90e06 Adapt to the new notes interface 2022-09-01 18:56:29 +03:00
Serge Lamikhov-Center
dd425d83c6 Modernize more files 2022-09-01 18:50:02 +03:00
Serge Lamikhov-Center
fc4df31fc2
Delete cmake.yml
It is a duplication of existing Action CI
2022-09-01 16:27:22 +03:00
Serge Lamikhov-Center
bd2673db1f Add missing <array> include 2022-09-01 16:20:42 +03:00
Serge Lamikhov-Center
d7c21907e7
Update codeql-analysis.yml 2022-09-01 08:53:50 +03:00
Serge Lamikhov-Center
95edc7bf71
Update c-cpp.yml 2022-09-01 08:52:22 +03:00
Serge Lamikhov-Center
c22276ec1a Modernize 'segment' implementation 2022-08-31 22:14:32 +03:00
Serge Lamikhov-Center
847249dd27
Create cmake.yml 2022-08-31 20:01:37 +03:00
Serge Lamikhov-Center
3e8c0c8002
Update c-cpp.yml 2022-08-31 20:00:20 +03:00
Serge Lamikhov-Center
156cac5fa1 Modernize the section implementation 2022-08-30 19:42:28 +03:00
Serge Lamikhov-Center
d4295a5ec9 Change 'launch' arguments 2022-08-29 08:21:17 +03:00
Serge Lamikhov-Center
af080f739e Use unique_ptr instead of raw pointers 2022-08-29 08:20:07 +03:00
Serge Lamikhov-Center
a3e2a1f07f Change placement of the fuzzer executable 2022-07-28 17:53:21 +03:00
Kamay Xutax
7227a0913f Fix sign-compare error
I just noticed that on my compiler;
probably due to recent version, not sure.
2022-07-18 19:01:22 +03:00
Serge Lamikhov-Center
eeb00b60b2 Initial attempt for lazy load - segment loading 2022-07-17 19:13:49 +03:00
Serge Lamikhov-Center
92658df379 In case of the top project, build examples and tests by default 2022-07-09 16:25:29 +03:00
Serge Lamikhov-Center
bc2532bd33 Remove Travis badge 2022-07-04 04:46:39 +00:00
Kamay Xutax
e633e80886 Added auxiliary vectors
TODO: We might add examples run-time one day.
2022-07-01 20:13:04 +03:00
Serge Lamikhov-Center
91017d3edb Add ASAN sanitizer to the fuzzer 2022-06-21 16:41:20 +03:00
Serge Lamikhov-Center
1b4dc7be42 Travis is not used any longer 2022-06-21 14:45:30 +03:00
Serge Lamikhov-Center
ef2fa127c0 Add elfio_fuzzer to tests' compilation 2022-06-21 09:49:46 +03:00
Serge Lamikhov-Center
9d6984a59b An attempt to address unusual case where 'note' size is larger than Elf_Word 2022-06-21 08:07:06 +03:00