diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-01 10:59:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-01 10:59:39 -0400 |
commit | 89db69d670a11274c323af48479841d3d765bd49 (patch) | |
tree | a465784ffca27512ead77508d62639554a767433 | |
parent | 7c404c62675932a406d1c67de5f8fa36e09b330d (diff) | |
parent | f74bc7c6679200a4a83156bb89cbf6c229fe8ec0 (diff) |
Merge tag 'smb3-file-name-too-long-fix' of git://git.samba.org/sfrench/cifs-2.6
Pull cifs fix from Steve French:
"smb3 file name too long fix"
* tag 'smb3-file-name-too-long-fix' of git://git.samba.org/sfrench/cifs-2.6:
cifs: check MaxPathNameComponentLength != 0 before using it
-rw-r--r-- | fs/cifs/dir.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index e702d48bd023..81ba6e0d88d8 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
@@ -204,7 +204,8 @@ check_name(struct dentry *direntry, struct cifs_tcon *tcon) | |||
204 | struct cifs_sb_info *cifs_sb = CIFS_SB(direntry->d_sb); | 204 | struct cifs_sb_info *cifs_sb = CIFS_SB(direntry->d_sb); |
205 | int i; | 205 | int i; |
206 | 206 | ||
207 | if (unlikely(direntry->d_name.len > | 207 | if (unlikely(tcon->fsAttrInfo.MaxPathNameComponentLength && |
208 | direntry->d_name.len > | ||
208 | le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength))) | 209 | le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength))) |
209 | return -ENAMETOOLONG; | 210 | return -ENAMETOOLONG; |
210 | 211 | ||
@@ -520,7 +521,7 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry, | |||
520 | 521 | ||
521 | rc = check_name(direntry, tcon); | 522 | rc = check_name(direntry, tcon); |
522 | if (rc) | 523 | if (rc) |
523 | goto out_free_xid; | 524 | goto out; |
524 | 525 | ||
525 | server = tcon->ses->server; | 526 | server = tcon->ses->server; |
526 | 527 | ||