Process_*_memory actual should be ptr to usize

This commit is contained in:
Ben Pig Chu 2020-09-06 22:42:32 +08:00
parent 0df65c2233
commit 3e3b86c646
3 changed files with 10 additions and 11 deletions

View File

@ -365,6 +365,7 @@ Vmar.BasicAllocateTest
Vmar.MapInCompactTest
Vmar.AllocateOobTest
Vmar.AllocateUnsatisfiableTest
Vmar.DestroyedVmarTest
Vmar.UnalignedLenTest
Vmar.UnalignedLenMapTest
Vmar.VmarMapRangeOffsetTest

View File

@ -396,14 +396,12 @@ impl VmAddressRegion {
} else {
Err(ZxError::INVALID_ARGS)
}
} else if len > self.size {
Err(ZxError::INVALID_ARGS)
} else {
if len > self.size {
Err(ZxError::INVALID_ARGS)
} else {
match self.find_free_area(&inner, 0, len, align) {
Some(offset) => Ok(offset),
None => Err(ZxError::NO_MEMORY),
}
match self.find_free_area(&inner, 0, len, align) {
Some(offset) => Ok(offset),
None => Err(ZxError::NO_MEMORY),
}
}
}

View File

@ -332,7 +332,7 @@ impl Syscall<'_> {
vaddr: usize,
mut buffer: UserOutPtr<u8>,
buffer_size: usize,
mut actual: UserOutPtr<u32>,
mut actual: UserOutPtr<usize>,
) -> ZxResult {
if buffer.is_null() || buffer_size == 0 || buffer_size > MAX_BLOCK {
return Err(ZxError::INVALID_ARGS);
@ -343,7 +343,7 @@ impl Syscall<'_> {
let mut data = vec![0u8; buffer_size];
let len = process.vmar().read_memory(vaddr, &mut data)?;
buffer.write_array(&data[..len])?;
actual.write_if_not_null(len as u32)?;
actual.write(len)?;
Ok(())
}
@ -354,7 +354,7 @@ impl Syscall<'_> {
vaddr: usize,
buffer: UserInPtr<u8>,
buffer_size: usize,
mut actual: UserOutPtr<u32>,
mut actual: UserOutPtr<usize>,
) -> ZxResult {
if buffer.is_null() || buffer_size == 0 || buffer_size > MAX_BLOCK {
return Err(ZxError::INVALID_ARGS);
@ -364,7 +364,7 @@ impl Syscall<'_> {
proc.get_object_with_rights::<Process>(handle_value, Rights::READ | Rights::WRITE)?;
let data = buffer.read_array(buffer_size)?;
let len = process.vmar().write_memory(vaddr, &data)?;
actual.write_if_not_null(len as u32)?;
actual.write(len)?;
Ok(())
}
}