MCPcopy Create free account
hub / github.com/F-Stack/f-stack / kern_renameat_mac

Function kern_renameat_mac

freebsd/kern/vfs_syscalls.c:3562–3585  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3560
3561#ifdef MAC
3562static int
3563kern_renameat_mac(struct thread *td, int oldfd, const char *old, int newfd,
3564 const char *new, enum uio_seg pathseg, struct nameidata *fromnd)
3565{
3566 int error;
3567
3568 NDINIT_ATRIGHTS(fromnd, DELETE, LOCKPARENT | LOCKLEAF | SAVESTART |
3569 AUDITVNODE1, pathseg, old, oldfd, &cap_renameat_source_rights, td);
3570 if ((error = namei(fromnd)) != 0)
3571 return (error);
3572 error = mac_vnode_check_rename_from(td->td_ucred, fromnd->ni_dvp,
3573 fromnd->ni_vp, &fromnd->ni_cnd);
3574 VOP_UNLOCK(fromnd->ni_dvp);
3575 if (fromnd->ni_dvp != fromnd->ni_vp)
3576 VOP_UNLOCK(fromnd->ni_vp);
3577 if (error != 0) {
3578 NDFREE(fromnd, NDF_ONLY_PNBUF);
3579 vrele(fromnd->ni_dvp);
3580 vrele(fromnd->ni_vp);
3581 if (fromnd->ni_startdir)
3582 vrele(fromnd->ni_startdir);
3583 }
3584 return (error);
3585}
3586#endif
3587
3588int

Callers 1

vfs_syscalls.cFile · 0.85

Calls 4

nameiFunction · 0.85
NDFREEFunction · 0.85
vreleFunction · 0.70

Tested by

no test coverage detected