From 2c068ecc21a972aa00f2871a4405e31547bf765a Mon Sep 17 00:00:00 2001 From: pommicket Date: Sun, 6 Nov 2022 22:53:44 -0500 Subject: overflow checking --- src/elf.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/elf.rs') diff --git a/src/elf.rs b/src/elf.rs index 41ce491..01386f2 100644 --- a/src/elf.rs +++ b/src/elf.rs @@ -109,8 +109,8 @@ impl Default for Ehdr32 { } impl Ehdr32 { - pub fn size_of() -> usize { - mem::size_of::() + pub fn size_of() -> u8 { + mem::size_of::() as u8 } } @@ -537,7 +537,8 @@ impl Reader for Reader32LE { let name = bytes_to_string(bytes)?; if name == ".strtab" { - strtab_idx = Some(s_idx as u16); + // since shdrs.len() == ehdr.shnum, this should never panic. + strtab_idx = Some(s_idx.try_into().unwrap()); } } -- cgit v1.2.3