vfs: make rights mandatory for NDINIT_ALL
This commit is contained in:
parent
fe4f491461
commit
21c162605b
@ -1371,6 +1371,7 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, enum uio_seg segflg,
|
||||
struct thread *td)
|
||||
{
|
||||
|
||||
MPASS(rightsp != NULL);
|
||||
ndp->ni_cnd.cn_nameiop = op;
|
||||
ndp->ni_cnd.cn_flags = flags;
|
||||
ndp->ni_segflg = segflg;
|
||||
@ -1380,10 +1381,7 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, enum uio_seg segflg,
|
||||
ndp->ni_resflags = 0;
|
||||
filecaps_init(&ndp->ni_filecaps);
|
||||
ndp->ni_cnd.cn_thread = td;
|
||||
if (rightsp != NULL)
|
||||
ndp->ni_rightsneeded = *rightsp;
|
||||
else
|
||||
cap_rights_init_zero(&ndp->ni_rightsneeded);
|
||||
ndp->ni_rightsneeded = *rightsp;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -188,13 +188,13 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status,
|
||||
* Initialization of a nameidata structure.
|
||||
*/
|
||||
#define NDINIT(ndp, op, flags, segflg, namep, td) \
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, 0, td)
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, &cap_no_rights, td)
|
||||
#define NDINIT_AT(ndp, op, flags, segflg, namep, dirfd, td) \
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, 0, td)
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, &cap_no_rights, td)
|
||||
#define NDINIT_ATRIGHTS(ndp, op, flags, segflg, namep, dirfd, rightsp, td) \
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, rightsp, td)
|
||||
#define NDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, 0, td)
|
||||
NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, &cap_no_rights, td)
|
||||
|
||||
void NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags,
|
||||
enum uio_seg segflg, const char *namep, int dirfd, struct vnode *startdir,
|
||||
|
Loading…
x
Reference in New Issue
Block a user