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
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
Serge Lamikhov-Center
ee891ca7c9
Make sure that dynamic section entry size is larger than ElfXX_Dyn structure
2022-06-19 23:21:56 +03:00
Serge Lamikhov-Center
cf954a8d42
Prevent memory access to data out the notes' section
2022-06-19 17:37:22 +03:00
Serge Lamikhov-Center
cb61d172bb
Prevent a memory leak
2022-06-19 17:34:28 +03:00
Serge Lamikhov-Center
3aad501f5b
Add check for incorrect section/segment entry size
2022-06-18 22:47:37 +03:00
Serge Lamikhov-Center
90737d9937
Add libFuzzer output file
2022-06-16 17:31:30 +03:00
Serge Lamikhov-Center
07ef317550
Check out of the file boundary access attemps
2022-06-16 17:30:22 +03:00
Serge Lamikhov-Center
38d61e30a7
Refactor var declaration
2022-06-11 06:13:41 +00:00
Serge Lamikhov-Center
cfa213d646
Reduce complexity of 'if' nesting
2022-06-11 05:59:51 +00:00
Alan Jowett
f1c7d420e4
Validate that strings in table are null terminated
...
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-06-11 07:47:44 +03:00
Serge Lamikhov-Center
2879ee62a2
Tiny reformat
2022-06-10 21:29:08 +03:00
Alan Jowett
fc3c397dd0
Reject ELF files with section entries smaller than symbol size
...
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-10 21:08:18 +03:00
Alan Jowett
3e6809cf13
Stop parsing ELF if segment header is beyond end of file
...
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
2022-06-10 20:54:00 +03:00
Richard Chien
1cb8be7aee
Fix potential use of uninitialized variables
2022-05-21 22:55:03 +03:00
Richard Chien
292367751d
Add AArch64 relocation types
2022-05-21 22:55:03 +03:00
Richard Chien
01f8fed8ad
Change relocation type to unsigned
2022-05-21 22:55:03 +03:00