From f984749ae48c2fdf68ac493ea17dd2fa2509cc01 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Thu, 2 Dec 2021 11:40:08 +0100 Subject: [PATCH] Breaking change: make Export.offset optional --- src/pe/export.rs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/pe/export.rs b/src/pe/export.rs index b47056172..a5f0ea50b 100644 --- a/src/pe/export.rs +++ b/src/pe/export.rs @@ -259,7 +259,7 @@ impl<'a> Reexport<'a> { /// An exported symbol in this binary, contains synthetic data (name offset, etc., are computed) pub struct Export<'a> { pub name: Option<&'a str>, - pub offset: usize, + pub offset: Option, pub rva: usize, pub size: usize, pub reexport: Option>, @@ -301,16 +301,7 @@ impl<'a, 'b> scroll::ctx::TryFromCtx<'a, ExportCtx<'b>> for Export<'a> { match *rva { ExportRVA(rva) => { let rva = rva as usize; - let offset = utils::find_offset_or( - rva, - sections, - file_alignment, - &opts, - &format!( - "cannot map RVA ({:#x}) of export ordinal {} into offset", - rva, ordinal - ), - )?; + let offset = utils::find_offset(rva, sections, file_alignment, &opts); Ok(( Export { name, @@ -339,7 +330,7 @@ impl<'a, 'b> scroll::ctx::TryFromCtx<'a, ExportCtx<'b>> for Export<'a> { Ok(( Export { name, - offset, + offset: Some(offset), rva, reexport: Some(reexport), size: 0,