diff --git a/src/pe/mod.rs b/src/pe/mod.rs index e55d02f5..1312d2c3 100644 --- a/src/pe/mod.rs +++ b/src/pe/mod.rs @@ -365,15 +365,19 @@ impl<'a> PE<'a> { }; if let Some(&resource_table) = optional_header.data_directories.get_resource_table() { - let data = resource::ResourceData::parse_with_opts( + resource_data = resource::ResourceData::parse_with_opts( bytes, resource_table, §ions, file_alignment, opts, + ) + .map(Some) + .or_permissive_and_default( + opts.parse_mode.is_permissive(), + "Failed to parse resource data", )?; - resource_data = Some(data); - debug!("resource_data data: {:#?}", data.version_info); + debug!("resource_data data: {:#?}", resource_data); } authenticode_excluded_sections = Some(authenticode::ExcludedSections::new(