From 7c81de68b8e13b92cecc5f58ec5dbf759e42f4a9 Mon Sep 17 00:00:00 2001 From: Derick Eddington <124489-kcired@users.noreply.gitlab.redox-os.org> Date: Sat, 6 Jul 2024 16:52:47 -0700 Subject: [PATCH] Fix `header::grp::parse_grp`. --- src/header/grp/mod.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/header/grp/mod.rs b/src/header/grp/mod.rs index 4958791cd9..a91d7e4de7 100644 --- a/src/header/grp/mod.rs +++ b/src/header/grp/mod.rs @@ -187,8 +187,8 @@ fn parse_grp(line: String, destbuf: Option) -> Result) -> Result) -> Result(); + let start = i * SIZEOF_PTR; + let end = start + SIZEOF_PTR; + &mut member_array[start..end] + }; + // Store offset to start of member, MUST BE ADJUSTED LATER BASED ON THE ADDRESS OF THE BUFFER - unsafe { - *member_array_ptr.add(i) = vec.len(); - } + member_ptr.copy_from_slice(&cur_offset.to_ne_bytes()); vec.extend(member); vec.push(0); @@ -223,7 +234,7 @@ fn parse_grp(line: String, destbuf: Option) -> Result { let mut buf = MaybeAllocated::Borrowed(buf); - if buf.len() < buf.len() { + if buf.len() < strings.len() { platform::ERRNO.set(errno::ERANGE); return Err(Error::BufTooSmall); }