cifs: check MaxPathNameComponentLength != 0 before using it
Subsystems (2)
PATCH 1/1 cifs: check MaxPathNameComponentLength != 0 before using it
And fix tcon leak in error path.
Signed-off-by Ronnie Sahlberg <[email protected]>
--- fs/cifs/dir.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
fs/cifs/dir.c +3 -2
@@ -204,7 +204,8 @@ check_name(struct dentry *direntry, struct cifs_tcon *tcon)struct cifs_sb_info *cifs_sb =CIFS_SB (direntry->d_sb);int i; -if (unlikely (direntry->d_name.len > +if (unlikely (tcon->fsAttrInfo.MaxPathNameComponentLength && + direntry->d_name.len >le32_to_cpu (tcon->fsAttrInfo.MaxPathNameComponentLength)))return -ENAMETOOLONG ;
@@ -520,7 +521,7 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry, rc =check_name (direntry, tcon);if (rc) - goto out_free_xid; + goto out; server = tcon->ses->server;
Signature · 1 line
2.13.3
A message that is not in the archive (sent off-list or not yet received): 20171030022803.31066-1-lsahlber-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Steve French
Appliedmerged into cifs-2.6.git for-next
Quoted 33 lines · Ronnie Sahlberg
And fix tcon leak in error path.
Signed-off-by Ronnie Sahlberg <[email protected]>--- fs/cifs/dir.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)fs/cifs/dir.c +3
-3@@ -204,7 +204,8 @@ check_name(struct dentry *direntry, struct cifs_tcon *tcon)struct cifs_sb_info *cifs_sb =CIFS_SB (direntry->d_sb);int i; -if (unlikely (direntry->d_name.len > +if (unlikely (tcon->fsAttrInfo.MaxPathNameComponentLength && + direntry->d_name.len >le32_to_cpu (tcon->fsAttrInfo.MaxPathNameComponentLength)))return -ENAMETOOLONG ;@@ -520,7 +521,7 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry, rc =check_name (direntry, tcon);if (rc) - goto out_free_xid; + goto out; server = tcon->ses->server; --2.13.3
Signature · 3 lines
Thanks, Steve