diff --git a/src/ld_so/dso.rs b/src/ld_so/dso.rs index 2942b5b936..8f619e3957 100644 --- a/src/ld_so/dso.rs +++ b/src/ld_so/dso.rs @@ -147,8 +147,8 @@ impl DSO { Some(entry) => { let runpath = elf .dynstrtab - .get(entry.d_val as usize) - .ok_or(Error::Malformed("Missing RUNPATH in dynstrtab".to_string()))??; + .get_at(entry.d_val as usize) + .ok_or(Error::Malformed("Missing RUNPATH in dynstrtab".to_string()))?; let base = dirname(path); return Ok(Some(runpath.replace("$ORIGIN", &base))); } @@ -361,8 +361,8 @@ impl DSO { } let name: String; let value: Symbol; - if let Some(name_res) = elf.dynstrtab.get(sym.st_name) { - name = name_res?.to_string(); + if let Some(name_res) = elf.dynstrtab.get_at(sym.st_name) { + name = name_res.to_string(); value = if is_pie_enabled(elf) { Symbol { base: mmap.as_ptr() as usize, diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index 7a223d9b39..b8d2156eb5 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -509,11 +509,11 @@ impl Linker { let mut t = 0; let name = elf.dynstrtab - .get(sym.st_name) + .get_at(sym.st_name) .ok_or(Error::Malformed(format!( "missing name for symbol {:?}", sym - )))??; + )))?; let mut symbol = None; let mut found = false; let lookup_start = match rel.r_type {