From a34361b9560a95bdd257ee4fe721dbe1156a5610 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 28 Mar 2025 22:09:39 -0400 Subject: [PATCH] Try to reject erreonous planner.lgb files --- src/layer/mod.rs | 6 +++++- src/sqpack/mod.rs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/layer/mod.rs b/src/layer/mod.rs index b269185..5d2aa75 100644 --- a/src/layer/mod.rs +++ b/src/layer/mod.rs @@ -466,12 +466,16 @@ impl LayerGroup { let mut cursor = Cursor::new(buffer); let file_header = LgbHeader::read(&mut cursor).unwrap(); - if file_header.file_size < 0 || file_header.total_chunk_count < 0 { + if file_header.file_size <= 0 || file_header.total_chunk_count <= 0 { return None; } let chunk_header = LayerChunk::read(&mut cursor).unwrap(); + if chunk_header.chunk_size <= 0 { + return None; + } + let old_pos = cursor.position(); let mut layer_offsets = vec![0i32; chunk_header.layer_count as usize]; diff --git a/src/sqpack/mod.rs b/src/sqpack/mod.rs index 4915d66..5f0f901 100644 --- a/src/sqpack/mod.rs +++ b/src/sqpack/mod.rs @@ -16,7 +16,7 @@ mod db; pub use db::SqPackDatabase; mod index; -pub use index::{IndexEntry, SqPackIndex, Hash}; +pub use index::{Hash, IndexEntry, SqPackIndex}; /// The type of this SqPack file. #[binrw]