diff --git a/src/formats/mtk_pkg/mod.rs b/src/formats/mtk_pkg/mod.rs index cdf1bcf..32223c3 100644 --- a/src/formats/mtk_pkg/mod.rs +++ b/src/formats/mtk_pkg/mod.rs @@ -131,7 +131,7 @@ pub fn extract_mtk_pkg(app_ctx: &AppContext, ctx: Box) -> Result<(), Bo //strip iMtK thing and get version let extra_header_len = if &out_data[48..52] == MTK_META_MAGIC { let imtk_len = u32::from_le_bytes(out_data[52..56].try_into().unwrap()); - if &out_data[56..60] != MTK_META_PAD_MAGIC { + if imtk_len != 0 && &out_data[56..60] != MTK_META_PAD_MAGIC { let version_len = u32::from_le_bytes(out_data[56..60].try_into().unwrap()); let version = common::string_from_bytes(&out_data[60..60 + version_len as usize]); println!("- Version: {}", version); diff --git a/src/formats/mtk_pkg_new/mod.rs b/src/formats/mtk_pkg_new/mod.rs index 9762a2b..dd3e6d4 100644 --- a/src/formats/mtk_pkg_new/mod.rs +++ b/src/formats/mtk_pkg_new/mod.rs @@ -100,7 +100,7 @@ pub fn extract_mtk_pkg_new(app_ctx: &AppContext, ctx: Box) -> Result<() //strip iMtK thing and get version let extra_header_len = if &out_data[48..52] == MTK_META_MAGIC { let imtk_len = u32::from_le_bytes(out_data[52..56].try_into().unwrap()); - if &out_data[56..60] != MTK_META_PAD_MAGIC { + if imtk_len != 0 && &out_data[56..60] != MTK_META_PAD_MAGIC { let version_len = u32::from_le_bytes(out_data[56..60].try_into().unwrap()); let version = common::string_from_bytes(&out_data[60..60 + version_len as usize]); println!("- Version: {}", version); diff --git a/src/formats/mtk_pkg_old/mod.rs b/src/formats/mtk_pkg_old/mod.rs index f96cf6c..42056a9 100644 --- a/src/formats/mtk_pkg_old/mod.rs +++ b/src/formats/mtk_pkg_old/mod.rs @@ -76,7 +76,7 @@ pub fn extract_mtk_pkg_old(app_ctx: &AppContext, ctx: Box) -> Result<() //strip iMtK thing and get version let extra_header_len = if &out_data[0..4] == MTK_META_MAGIC { let imtk_len = u32::from_le_bytes(out_data[4..8].try_into().unwrap()); - if &out_data[8..12] != MTK_META_PAD_MAGIC { + if imtk_len != 0 && &out_data[8..12] != MTK_META_PAD_MAGIC { let version_len = u32::from_le_bytes(out_data[8..12].try_into().unwrap()); let version = common::string_from_bytes(&out_data[12..12 + version_len as usize]); println!("- Version: {}", version);