From 2da5993c03dac5a8e32eed7ce9b1611a48bf79e0 Mon Sep 17 00:00:00 2001 From: khang Date: Fri, 21 Jun 2024 12:05:54 -0400 Subject: [PATCH] wad: fix texture crash --- wad/src/lib.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wad/src/lib.rs b/wad/src/lib.rs index 49b467c..aaf3566 100644 --- a/wad/src/lib.rs +++ b/wad/src/lib.rs @@ -27,6 +27,8 @@ mod byte_writer; type IResult<'a, T> = _IResult<&'a [u8], T>; +static MAX_TEXTURE_NAME_LENGTH: usize = 15; + #[derive(Debug)] pub struct Header { pub magic: Vec, @@ -100,9 +102,10 @@ impl TextureName { } pub fn from_string(s: impl AsRef + Into) -> Self { - let mut res = vec![0u8; 16]; + let mut res = vec![0u8; MAX_TEXTURE_NAME_LENGTH + 1]; + let texture_name_length = s.as_ref().len().min(MAX_TEXTURE_NAME_LENGTH); - res[..s.as_ref().len()].copy_from_slice(s.as_ref().as_bytes()); + res[..texture_name_length].copy_from_slice(&s.as_ref().as_bytes()[..texture_name_length]); Self(res) }