summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/src/backend/linux_raw/vdso.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/backend/linux_raw/vdso.rs')
-rw-r--r--vendor/rustix/src/backend/linux_raw/vdso.rs27
1 files changed, 15 insertions, 12 deletions
diff --git a/vendor/rustix/src/backend/linux_raw/vdso.rs b/vendor/rustix/src/backend/linux_raw/vdso.rs
index 606aee7d1..1b0ae5375 100644
--- a/vendor/rustix/src/backend/linux_raw/vdso.rs
+++ b/vendor/rustix/src/backend/linux_raw/vdso.rs
@@ -13,12 +13,12 @@
#![allow(unsafe_code)]
use super::c;
-use super::elf::*;
use crate::ffi::CStr;
use crate::utils::check_raw_pointer;
use core::ffi::c_void;
use core::mem::size_of;
use core::ptr::{null, null_mut};
+use linux_raw_sys::elf::*;
pub(super) struct Vdso {
// Load information
@@ -143,28 +143,31 @@ fn init_from_sysinfo_ehdr() -> Option<Vdso> {
match d.d_tag {
DT_STRTAB => {
vdso.symstrings =
- check_raw_pointer::<u8>(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr();
+ check_raw_pointer::<u8>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
}
DT_SYMTAB => {
vdso.symtab =
- check_raw_pointer::<Elf_Sym>(vdso.addr_from_elf(d.d_val)? as *mut _)?
+ check_raw_pointer::<Elf_Sym>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
.as_ptr();
}
DT_HASH => {
- hash =
- check_raw_pointer::<u32>(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr();
+ hash = check_raw_pointer::<u32>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
}
DT_VERSYM => {
vdso.versym =
- check_raw_pointer::<u16>(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr();
+ check_raw_pointer::<u16>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
}
DT_VERDEF => {
- vdso.verdef =
- check_raw_pointer::<Elf_Verdef>(vdso.addr_from_elf(d.d_val)? as *mut _)?
- .as_ptr();
+ vdso.verdef = check_raw_pointer::<Elf_Verdef>(
+ vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _,
+ )?
+ .as_ptr();
}
DT_SYMENT => {
- if d.d_val != size_of::<Elf_Sym>() {
+ if d.d_un.d_ptr != size_of::<Elf_Sym>() {
return None; // Failed
}
}
@@ -194,8 +197,8 @@ fn init_from_sysinfo_ehdr() -> Option<Vdso> {
impl Vdso {
/// Parse the vDSO.
///
- /// Returns `None` if the vDSO can't be located or if it doesn't conform
- /// to our expectations.
+ /// Returns `None` if the vDSO can't be located or if it doesn't conform to
+ /// our expectations.
#[inline]
pub(super) fn new() -> Option<Self> {
init_from_sysinfo_ehdr()