mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-26 18:04:22 +03:00
Fix off by one in zpl_lookup
Doing the following command would return success with zfs creating an orphan object. touch $(for i in $(seq 256); do printf "n"; done) The funny thing is that this will only work once for each directory, because after upgraded to fzap, zfs_lookup would fail properly since it has additional length check. Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #5768
This commit is contained in:
parent
b291029e86
commit
d6df043c53
@ -50,7 +50,7 @@ zpl_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
|
|||||||
int zfs_flags = 0;
|
int zfs_flags = 0;
|
||||||
zfs_sb_t *zsb = dentry->d_sb->s_fs_info;
|
zfs_sb_t *zsb = dentry->d_sb->s_fs_info;
|
||||||
|
|
||||||
if (dlen(dentry) > ZFS_MAX_DATASET_NAME_LEN)
|
if (dlen(dentry) >= ZAP_MAXNAMELEN)
|
||||||
return (ERR_PTR(-ENAMETOOLONG));
|
return (ERR_PTR(-ENAMETOOLONG));
|
||||||
|
|
||||||
crhold(cr);
|
crhold(cr);
|
||||||
|
Loading…
Reference in New Issue
Block a user