fix: pkg interpreting
This commit is contained in:
parent
70a22810b2
commit
1ec1d5c9b2
1 changed files with 6 additions and 12 deletions
|
@ -9,28 +9,22 @@ impl TryFrom<Vec<u8>> for PKGFile {
|
|||
fn try_from(value: Vec<u8>) -> Result<Self, ()> {
|
||||
match value[0] {
|
||||
1 => {
|
||||
let header: Vec<u32> = value[..3]
|
||||
.iter()
|
||||
.map(|v| u32::from(*v))
|
||||
.collect();
|
||||
let header: Vec<u32> = value[..3].iter().map(|v| u32::from(*v)).collect();
|
||||
let manifest_size: u32 = (header[1] << 8) | header[2];
|
||||
if manifest_size > value.len() as u32 {
|
||||
return Err(());
|
||||
}
|
||||
Ok(PKGFile {
|
||||
manifest: match String::from_utf8(
|
||||
value[
|
||||
3..(manifest_size as usize + 3)
|
||||
].to_vec()
|
||||
)
|
||||
{
|
||||
value[3..(manifest_size as usize + 3)].to_vec(),
|
||||
) {
|
||||
Ok(s) => s,
|
||||
_ => return Err(())
|
||||
_ => return Err(()),
|
||||
},
|
||||
data: value[(manifest_size as usize + 3)..].to_vec(),
|
||||
})
|
||||
}
|
||||
_ => Err(())
|
||||
_ => Err(()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,4 +39,4 @@ impl Into<Vec<u8>> for PKGFile {
|
|||
bytes.extend(self.data);
|
||||
bytes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue