git: 0d224af399a6 - main - namei: Fix cn_flags width in various places
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 27 May 2025 14:38:34 UTC
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0d224af399a66f00a5b33e5512fc018062cabf1d commit 0d224af399a66f00a5b33e5512fc018062cabf1d Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2025-05-27 13:29:14 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2025-05-27 13:29:14 +0000 namei: Fix cn_flags width in various places This truncation is mostly harmless today, but fix it anyway to avoid pain later down the road. Reviewed by: olce, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D50417 --- sys/fs/cd9660/cd9660_lookup.c | 2 +- sys/fs/fuse/fuse_vnops.c | 9 ++++----- sys/fs/p9fs/p9fs_vnops.c | 2 +- sys/fs/smbfs/smbfs_vnops.c | 2 +- sys/fs/unionfs/union_vnops.c | 2 +- sys/kern/uipc_mqueue.c | 3 ++- sys/kern/vfs_cache.c | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sys/fs/cd9660/cd9660_lookup.c b/sys/fs/cd9660/cd9660_lookup.c index 1adb7a18bcf1..75fcdc9152cd 100644 --- a/sys/fs/cd9660/cd9660_lookup.c +++ b/sys/fs/cd9660/cd9660_lookup.c @@ -125,7 +125,7 @@ cd9660_lookup(struct vop_cachedlookup_args *ap) char *name; struct vnode **vpp = ap->a_vpp; struct componentname *cnp = ap->a_cnp; - int flags = cnp->cn_flags; + uint64_t flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; ep2 = ep = NULL; diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 016b634c4fa0..83f527ec8ec0 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -1431,8 +1431,8 @@ fuse_vnop_lookup(struct vop_lookup_args *ap) struct timespec now; int nameiop = cnp->cn_nameiop; - int flags = cnp->cn_flags; - int islastcn = flags & ISLASTCN; + bool isdotdot = cnp->cn_flags & ISDOTDOT; + bool islastcn = cnp->cn_flags & ISLASTCN; struct mount *mp = vnode_mount(dvp); struct fuse_data *data = fuse_get_mpdata(mp); int default_permissions = data->dataflags & FSESS_DEFAULT_PERMISSIONS; @@ -1465,8 +1465,7 @@ fuse_vnop_lookup(struct vop_lookup_args *ap) return err; is_dot = cnp->cn_namelen == 1 && *(cnp->cn_nameptr) == '.'; - if ((flags & ISDOTDOT) && !(data->dataflags & FSESS_EXPORT_SUPPORT)) - { + if (isdotdot && !(data->dataflags & FSESS_EXPORT_SUPPORT)) { if (!(VTOFUD(dvp)->flag & FN_PARENT_NID)) { /* * Since the file system doesn't support ".." lookups, @@ -1580,7 +1579,7 @@ fuse_vnop_lookup(struct vop_lookup_args *ap) } } else { /* Entry was found */ - if (flags & ISDOTDOT) { + if (isdotdot) { struct fuse_lookup_alloc_arg flaa; flaa.nid = nid; diff --git a/sys/fs/p9fs/p9fs_vnops.c b/sys/fs/p9fs/p9fs_vnops.c index cfb50c704019..56bf766ef801 100644 --- a/sys/fs/p9fs/p9fs_vnops.c +++ b/sys/fs/p9fs/p9fs_vnops.c @@ -222,9 +222,9 @@ p9fs_lookup(struct vop_lookup_args *ap) struct p9fs_session *vses; struct mount *mp; /* Get the mount point */ struct p9_fid *dvfid, *newfid; + uint64_t flags; int error; struct vattr vattr; - int flags; char tmpchr; dvp = ap->a_dvp; diff --git a/sys/fs/smbfs/smbfs_vnops.c b/sys/fs/smbfs/smbfs_vnops.c index 1e7dcafb1121..c30995508c00 100644 --- a/sys/fs/smbfs/smbfs_vnops.c +++ b/sys/fs/smbfs/smbfs_vnops.c @@ -1051,7 +1051,7 @@ smbfs_lookup(struct vop_lookup_args *ap) struct smbfattr fattr, *fap; struct smb_cred *scred; char *name = cnp->cn_nameptr; - int flags = cnp->cn_flags; + uint64_t flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; int nmlen = cnp->cn_namelen; int error, islastcn, isdot; diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index a930e3921ab3..03130f0ca949 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -99,8 +99,8 @@ unionfs_lookup(struct vop_cachedlookup_args *ap) struct vattr va; struct componentname *cnp; struct thread *td; + uint64_t cnflags; u_long nameiop; - u_long cnflags; int lockflag; int lkflags; int error, uerror, lerror; diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index d647c7b991f4..6f2760635bad 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -851,7 +851,8 @@ mqfs_lookupx(struct vop_cachedlookup_args *ap) struct mqfs_node *pd; struct mqfs_node *pn; struct mqfs_info *mqfs; - int nameiop, flags, error, namelen; + uint64_t flags; + int nameiop, error, namelen; char *pname; struct thread *td; diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index af2d790b2e5b..4ab00698b311 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -4174,7 +4174,7 @@ SYSCTL_PROC(_vfs_cache_param, OID_AUTO, fast_lookup, CTLTYPE_INT|CTLFLAG_RW|CTLF */ struct nameidata_outer { size_t ni_pathlen; - int cn_flags; + uint64_t cn_flags; }; struct nameidata_saved {