From b09cb32289ea716df1808962f6ea6f58b429ded7 Mon Sep 17 00:00:00 2001 From: theubusu <80545678+theubusu@users.noreply.github.com> Date: Tue, 19 May 2026 20:52:59 +0200 Subject: [PATCH] mtk_pkg: fix bug (trying to get version when imtk_len is 0) --- src/formats/mtk_pkg/mod.rs | 2 +- src/formats/mtk_pkg_new/mod.rs | 2 +- src/formats/mtk_pkg_old/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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);