[libos] Fix rt_sigaction wrong inargument
This commit is contained in:
parent
e9f2c09012
commit
2b1a9b960a
@ -14,9 +14,15 @@ pub fn do_rt_sigaction(
|
||||
signum_c: c_int,
|
||||
new_sa_c: *const sigaction_t,
|
||||
old_sa_c: *mut sigaction_t,
|
||||
sigset_size: size_t,
|
||||
) -> Result<isize> {
|
||||
// C types -> Rust types
|
||||
let signum = SigNum::from_u8(signum_c as u8)?;
|
||||
|
||||
if sigset_size != std::mem::size_of::<sigset_t>() {
|
||||
return_errno!(EINVAL, "unexpected sig action size");
|
||||
}
|
||||
|
||||
let new_sa = {
|
||||
if !new_sa_c.is_null() {
|
||||
let new_sa_c = unsafe { &*new_sa_c };
|
||||
|
@ -110,7 +110,7 @@ macro_rules! process_syscall_table_with_callback {
|
||||
(Mprotect = 10) => do_mprotect(addr: usize, len: usize, prot: u32),
|
||||
(Munmap = 11) => do_munmap(addr: usize, size: usize),
|
||||
(Brk = 12) => do_brk(new_brk_addr: usize),
|
||||
(RtSigaction = 13) => do_rt_sigaction(signum_c: c_int, new_sa_c: *const sigaction_t, old_sa_c: *mut sigaction_t),
|
||||
(RtSigaction = 13) => do_rt_sigaction(signum_c: c_int, new_sa_c: *const sigaction_t, old_sa_c: *mut sigaction_t, sigset_size: size_t),
|
||||
(RtSigprocmask = 14) => do_rt_sigprocmask(how: c_int, set: *const sigset_t, oldset: *mut sigset_t, sigset_size: size_t),
|
||||
(RtSigreturn = 15) => do_rt_sigreturn(context: *mut CpuContext),
|
||||
(Ioctl = 16) => do_ioctl(fd: FileDesc, cmd: u32, argp: *mut u8),
|
||||
|
Loading…
Reference in New Issue
Block a user