110 Commits

Author SHA1 Message Date
Serge Lamikhov-Center
e07864463c Experimental change of section table alignment to 16 2023-10-16 20:19:00 +03:00
Serge Lamikhov-Center
8ae6cec5d6 C++17 refactoring 2023-06-02 17:37:37 +03:00
Hao Chen
5be0f95443 Update elfio.hpp
Fix a memory leak that misuses unique_ptr
2023-02-12 10:06:22 +02:00
Serge Lamikhov-Center
259da37f3a Remove dispersed 'noexcept' specifier 2022-11-24 15:56:37 +02:00
Serge Lamikhov-Center
9827eac948 Implement 'lazy' load for sections 2022-11-13 00:05:25 +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
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
Serge Lamikhov-Center
bd2673db1f Add missing <array> include 2022-09-01 16:20:42 +03:00
Serge Lamikhov-Center
156cac5fa1 Modernize the section implementation 2022-08-30 19:42:28 +03:00
Serge Lamikhov-Center
af080f739e Use unique_ptr instead of raw pointers 2022-08-29 08:20:07 +03:00
Serge Lamikhov-Center
eeb00b60b2 Initial attempt for lazy load - segment loading 2022-07-17 19:13:49 +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
07ef317550 Check out of the file boundary access attemps 2022-06-16 17:30:22 +03:00
Serge Lamikhov-Center
cfa213d646 Reduce complexity of 'if' nesting 2022-06-11 05:59:51 +00: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
Serge Lamikhov-Center
722077d4f7 Initialize local var 2022-02-02 23:31:49 +02:00
Serge Lamikhov-Center
0c841c7ed4 No need to disable warnings in a newer VS C++ compiler 2022-02-02 23:28:01 +02:00
Serge Lamikhov-Center
48e78fe1b9 No need to disable warnings in a newer VS C++ compiler 2022-02-02 23:19:15 +02:00
Serge Lamikhov-Center
7ba15e0549 Version Requirements accessor (reader) was added 2021-12-01 17:10:35 +02:00
Serge Lamikhov-Center
83d1f9b28a Don't clean() address_translation table 2021-09-20 23:45:50 +03:00
Serge Lamikhov-Center
53d3bb407c Rename 'end' field of address translation to 'size' 2021-09-20 20:44:19 +03:00
Serge Lamikhov-Center
dad4b434c8 Use a different notation for the address translation 2021-09-20 00:03:21 +03:00
Serge Lamikhov-Center
511086598a Implement address translation for segments 2021-09-19 23:26:58 +03:00
Serge Lamikhov-Center
b527ea992a An attempt to implement memory translation for sections 2021-09-19 11:28:35 +03:00
Serge Lamikhov-Center
0a15ec0aea Header dump shows correct values 2021-09-19 11:28:26 +03:00
Serge Lamikhov-Center
24d29a213a Move constructor and assignment has been implemented 2021-09-19 11:16:30 +03:00
Serge Lamikhov-Center
3a76e30a92 Rename a local variable 2021-09-18 01:16:25 +03:00
Serge Lamikhov-Center
33089a021a Make 'explicit' constructor 2021-09-14 18:35:54 +03:00
Serge Lamikhov-Center
162fd7a9a0 modernize-loop-convert 2021-08-26 13:11:46 +03:00
Serge Lamikhov-Center
4a84319bb8 modernize-use-nullptr 2021-08-26 12:52:23 +03:00
Serge Lamikhov-Center
1f79600cec Refactoring 2021-08-16 23:19:47 +03:00
Serge Lamikhov-Center
79fcd11595 Add check for data endianess flags 2021-06-05 16:46:24 +03:00
Serge Lamikhov-Center
f591a3b74e Add explicit declaration of move constructor and move assignment 2021-03-30 00:59:06 +03:00
Serge Lamikhov-Center
29114f6538 Explicetly delete the copy constructor and assignment operator 2021-03-29 21:17:57 +03:00
Serge Lamikhov-Center
57e614a486 Remove postfix underscore in parameter names 2021-02-05 10:40:18 +02:00
Serge Lamikhov-Center
762c59a2bb Change copyright period 2021-01-19 09:43:01 +02:00
Serge Lamikhov-Center
8037e5a42a Add 'validate' function to C language wrapper 2021-01-08 00:11:20 +02:00
Martin Bickel
3e55690e6d Added new check for section/progHeader consistency 2021-01-07 12:43:21 +02:00
Serge Lamikhov-Center
22ff134363 Address array section accessor added
The accessor is useful for manipulation of such sections as .ctors,
.dtors, .init_array and .fini_array
2020-12-22 14:10:16 +02:00
Serge Lamikhov-Center
e18e5bc261 Use a header for version information 2020-08-24 10:24:09 -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
c6e5eb0aad Update Copyright period 2020-08-19 13:47:20 -07:00
Serge Lamikhov-Center
d2c3fb6a14 Refactoring - remove unnecessary check 2020-08-15 18:56:13 +03:00
Serge Lamikhov-Center
a59cbf6674 Alighn code with whitespaces 2020-08-08 09:55:42 -07:00