| 239 | }; |
| 240 | #endif |
| 241 | int |
| 242 | sys_fexecve(struct thread *td, struct fexecve_args *uap) |
| 243 | { |
| 244 | struct image_args args; |
| 245 | struct vmspace *oldvmspace; |
| 246 | int error; |
| 247 | |
| 248 | error = pre_execve(td, &oldvmspace); |
| 249 | if (error != 0) |
| 250 | return (error); |
| 251 | error = exec_copyin_args(&args, NULL, UIO_SYSSPACE, |
| 252 | uap->argv, uap->envv); |
| 253 | if (error == 0) { |
| 254 | args.fd = uap->fd; |
| 255 | error = kern_execve(td, &args, NULL, oldvmspace); |
| 256 | } |
| 257 | post_execve(td, error, oldvmspace); |
| 258 | AUDIT_SYSCALL_EXIT(error == EJUSTRETURN ? 0 : error, td); |
| 259 | return (error); |
| 260 | } |
| 261 | |
| 262 | #ifndef _SYS_SYSPROTO_H_ |
| 263 | struct __mac_execve_args { |
nothing calls this directly
no test coverage detected