[libos] Fix rt_sigaction wrong inargument
This commit is contained in:
		
							parent
							
								
									32b94f1dd9
								
							
						
					
					
						commit
						d7131a1a5b
					
				| @ -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