diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2008-08-23 15:26:36 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2008-08-23 15:26:36 +0000 |
| commit | 6356dba0b403daa023dec24559ab1f8e602e4f14 (patch) | |
| tree | 5219c0b4d17dd1dcbcb5fda367c1905a0929ee2b /sys/kern/kern_exec.c | |
| parent | 99448af81e4572b5f1d892bdf81cfbe37c518e7f (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_exec.c')
| -rw-r--r-- | sys/kern/kern_exec.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 09979493d570..0d1e871d4154 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -336,7 +336,7 @@ do_execve(td, args, mac_p) int vfslocked; int textset; #ifdef MAC - struct label *interplabel = NULL; + struct label *interpvplabel = NULL; int will_transition; #endif #ifdef HWPMC_HOOKS @@ -494,8 +494,7 @@ interpret: if (args->fname != NULL) NDFREE(ndp, NDF_ONLY_PNBUF); #ifdef MAC - interplabel = mac_vnode_label_alloc(); - mac_vnode_copy_label(binvp->v_label, interplabel); + mac_execve_interpreter_enter(binvp, &interpvplabel); #endif if (imgp->opened) { VOP_CLOSE(binvp, FREAD, td->td_ucred, td); @@ -627,7 +626,7 @@ interpret: attr.va_gid; #ifdef MAC will_transition = mac_vnode_execve_will_transition(oldcred, imgp->vp, - interplabel, imgp); + interpvplabel, imgp); credential_changing |= will_transition; #endif @@ -681,7 +680,7 @@ interpret: #ifdef MAC if (will_transition) { mac_vnode_execve_transition(oldcred, newcred, imgp->vp, - interplabel, imgp); + interpvplabel, imgp); } #endif /* @@ -880,8 +879,7 @@ exec_fail: done2: #ifdef MAC mac_execve_exit(imgp); - if (interplabel != NULL) - mac_vnode_label_free(interplabel); + mac_execve_interpreter_exit(interpvplabel); #endif VFS_UNLOCK_GIANT(vfslocked); exec_free_args(args); |
