提交 a805606d 编写于 作者: O Oliver Schneider 提交者: GitHub

malloc should return null for zst allocs

上级 a630677b
......@@ -561,14 +561,20 @@ fn call_c_abi(
match &link_name[..] {
"malloc" => {
let size = self.value_to_primval(args[0], usize)?.to_u64()?;
let align = self.memory.pointer_size();
let ptr = self.memory.allocate(size, align)?;
self.write_primval(dest, PrimVal::Ptr(ptr), dest_ty)?;
if size == 0 {
self.write_primval(dest, PrimVal::Bytes(0), dest_ty)?;
} else {
let align = self.memory.pointer_size();
let ptr = self.memory.allocate(size, align)?;
self.write_primval(dest, PrimVal::Ptr(ptr), dest_ty)?;
}
}
"free" => {
let ptr = args[0].read_ptr(&self.memory)?.to_ptr()?;
self.memory.deallocate(ptr)?;
let ptr = args[0].read_ptr(&self.memory)?;
if !ptr.is_null() {
self.memory.deallocate(ptr.to_ptr()?)?;
}
}
"syscall" => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册