Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elf gnu symbol versioning #280

Merged
merged 20 commits into from
Sep 14, 2021
Merged
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0ab34dc
elf.dynamic: Parse DT_VERDEF + DT_VERDEFNUM dynamic tags into Dynamic…
johannst Aug 10, 2021
7a1a6e6
elf.symver: add struct definitions and reading part for .gnu.version_…
johannst Aug 13, 2021
dc1e26b
elf.symver: add tests for parsing .gnu.version_r section
johannst Aug 13, 2021
85ed28d
elf.symver: make structs used by user more ergonomic by using usize
johannst Aug 13, 2021
de9a4e7
elf.symver: API updates
johannst Aug 14, 2021
61c00ef
elf.symver: add struct definitions and reading part for .gnu.version_…
johannst Aug 15, 2021
753ad13
elf.symver: Use sub-module as feature guard
johannst Aug 15, 2021
8b882af
add tests for parsing .gnu.version_d section
johannst Aug 15, 2021
89697c4
elf.symver: add struct definitions and reading part for .gnu.version …
johannst Aug 15, 2021
b472420
elf.symver: add tests for parsing .gnu.version section
johannst Aug 15, 2021
fa03ec3
elf.symver: fix clippy warnings
johannst Aug 15, 2021
8bd8bc8
elf.symver: added some convenience methods to Verdef
johannst Aug 15, 2021
097d6e5
elf.symver: apply review feedback
johannst Aug 16, 2021
b2d780f
elf.symver: apply review feedback
johannst Aug 16, 2021
7c41301
elf.symver: apply review feedback
johannst Aug 17, 2021
8dad2eb
elf.symver: add doc comments to constants and move field doc comments…
johannst Aug 17, 2021
49d2b38
elf.symver: fix comments in test
johannst Sep 5, 2021
74e6fb0
elf.symver: move cfg guard globally on module
johannst Sep 6, 2021
f029db3
elf.symver: apply review feedback
johannst Sep 8, 2021
5bc5c52
elf.symver: apply review feedback
johannst Sep 8, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
elf.dynamic: Parse DT_VERDEF + DT_VERDEFNUM dynamic tags into Dynamic…
…Info struct
johannst committed Aug 10, 2021
commit 0ab34dcab1637c49f63f0b7bca7d2672f46aac31
6 changes: 6 additions & 0 deletions src/elf/dynamic.rs
Original file line number Diff line number Diff line change
@@ -614,6 +614,8 @@ macro_rules! elf_dynamic_info_std_impl {
pub pltrelsz: usize,
pub pltrel: $size,
pub jmprel: usize,
pub verdef: $size,
pub verdefnum: $size,
pub verneed: $size,
pub verneednum: $size,
pub versym: $size,
@@ -658,6 +660,8 @@ macro_rules! elf_dynamic_info_std_impl {
DT_JMPREL => {
self.jmprel = vm_to_offset(phdrs, dynamic.d_val).unwrap_or(0) as usize
} // .rela.plt
DT_VERDEF => self.verdef = vm_to_offset(phdrs, dynamic.d_val).unwrap_or(0),
DT_VERDEFNUM => self.verdefnum = vm_to_offset(phdrs, dynamic.d_val).unwrap_or(0),
DT_VERNEED => self.verneed = vm_to_offset(phdrs, dynamic.d_val).unwrap_or(0),
DT_VERNEEDNUM => self.verneednum = dynamic.d_val as _,
DT_VERSYM => self.versym = vm_to_offset(phdrs, dynamic.d_val).unwrap_or(0),
@@ -750,6 +754,8 @@ macro_rules! elf_dynamic_info_std_impl {
.field("pltrelsz", &self.pltrelsz)
.field("pltrel", &self.pltrel)
.field("jmprel", &format_args!("0x{:x}", self.jmprel))
.field("verdef", &format_args!("0x{:x}", self.verdef))
.field("verdefnum", &self.verdefnum)
.field("verneed", &format_args!("0x{:x}", self.verneed))
.field("verneednum", &self.verneednum)
.field("versym", &format_args!("0x{:x}", self.versym))