kern_exec.c: Add execve_nosetid() helper
Reviewed by: dchagin Tested by: trasz MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28154
This commit is contained in:
parent
66e73ce737
commit
19e6043a44
@ -355,6 +355,16 @@ kern_execve(struct thread *td, struct image_args *args, struct mac *mac_p,
|
||||
return (do_execve(td, args, mac_p, oldvmspace));
|
||||
}
|
||||
|
||||
static void
|
||||
execve_nosetid(struct image_params *imgp)
|
||||
{
|
||||
imgp->credential_setid = false;
|
||||
if (imgp->newcred != NULL) {
|
||||
crfree(imgp->newcred);
|
||||
imgp->newcred = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* In-kernel implementation of execve(). All arguments are assumed to be
|
||||
* userspace pointers from the passed thread.
|
||||
@ -643,11 +653,7 @@ interpret:
|
||||
vput(newtextvp);
|
||||
vm_object_deallocate(imgp->object);
|
||||
imgp->object = NULL;
|
||||
imgp->credential_setid = false;
|
||||
if (imgp->newcred != NULL) {
|
||||
crfree(imgp->newcred);
|
||||
imgp->newcred = NULL;
|
||||
}
|
||||
execve_nosetid(imgp);
|
||||
imgp->execpath = NULL;
|
||||
free(imgp->freepath, M_TEMP);
|
||||
imgp->freepath = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user