Changeset View
Changeset View
Standalone View
Standalone View
head/sys/compat/freebsd32/freebsd32_misc.c
Show First 20 Lines • Show All 436 Lines • ▼ Show 20 Lines | freebsd32_execve(struct thread *td, struct freebsd32_execve_args *uap) | ||||
error = pre_execve(td, &oldvmspace); | error = pre_execve(td, &oldvmspace); | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
error = freebsd32_exec_copyin_args(&eargs, uap->fname, UIO_USERSPACE, | error = freebsd32_exec_copyin_args(&eargs, uap->fname, UIO_USERSPACE, | ||||
uap->argv, uap->envv); | uap->argv, uap->envv); | ||||
if (error == 0) | if (error == 0) | ||||
error = kern_execve(td, &eargs, NULL, oldvmspace); | error = kern_execve(td, &eargs, NULL, oldvmspace); | ||||
post_execve(td, error, oldvmspace); | post_execve(td, error, oldvmspace); | ||||
AUDIT_SYSCALL_EXIT(error == EJUSTRETURN ? 0 : error, td); | |||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap) | freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap) | ||||
{ | { | ||||
struct image_args eargs; | struct image_args eargs; | ||||
struct vmspace *oldvmspace; | struct vmspace *oldvmspace; | ||||
int error; | int error; | ||||
error = pre_execve(td, &oldvmspace); | error = pre_execve(td, &oldvmspace); | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
error = freebsd32_exec_copyin_args(&eargs, NULL, UIO_SYSSPACE, | error = freebsd32_exec_copyin_args(&eargs, NULL, UIO_SYSSPACE, | ||||
uap->argv, uap->envv); | uap->argv, uap->envv); | ||||
if (error == 0) { | if (error == 0) { | ||||
eargs.fd = uap->fd; | eargs.fd = uap->fd; | ||||
error = kern_execve(td, &eargs, NULL, oldvmspace); | error = kern_execve(td, &eargs, NULL, oldvmspace); | ||||
} | } | ||||
post_execve(td, error, oldvmspace); | post_execve(td, error, oldvmspace); | ||||
AUDIT_SYSCALL_EXIT(error == EJUSTRETURN ? 0 : error, td); | |||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
freebsd32_mknodat(struct thread *td, struct freebsd32_mknodat_args *uap) | freebsd32_mknodat(struct thread *td, struct freebsd32_mknodat_args *uap) | ||||
{ | { | ||||
return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE, | return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE, | ||||
▲ Show 20 Lines • Show All 3,293 Lines • Show Last 20 Lines |