diff options
author | Ronnie Sahlberg <lsahlber@redhat.com> | 2017-09-28 09:39:58 +1000 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2017-10-18 11:52:39 -0500 |
commit | 7cb3def44ce834e5ea462fd900505af4cd68b3d5 (patch) | |
tree | 0dd9ce55764c6c44d2a851e63770cbe8ee0fc078 /fs/cifs/smb2proto.h | |
parent | 06e2290844fa408d3295ac03a1647f0798518ebe (diff) | |
download | linux-stable-7cb3def44ce834e5ea462fd900505af4cd68b3d5.tar.gz linux-stable-7cb3def44ce834e5ea462fd900505af4cd68b3d5.tar.bz2 linux-stable-7cb3def44ce834e5ea462fd900505af4cd68b3d5.zip |
cifs: handle large EA requests more gracefully in smb2+
Update reading the EA using increasingly larger buffer sizes
until the response will fit in the buffer, or we exceed the
(arbitrary) maximum set to 64kb.
Without this change, a user is able to add more and more EAs using
setfattr until the point where the total space of all EAs exceed 2kb
at which point the user can no longer list the EAs at all
and getfattr will abort with an error.
The same issue still exists for EAs in SMB1.
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reported-by: Xiaoli Feng <xifeng@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/smb2proto.h')
-rw-r--r-- | fs/cifs/smb2proto.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/cifs/smb2proto.h b/fs/cifs/smb2proto.h index 003217099ef3..e9ab5227e7a8 100644 --- a/fs/cifs/smb2proto.h +++ b/fs/cifs/smb2proto.h @@ -134,6 +134,7 @@ extern int SMB2_flush(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id); extern int SMB2_query_eas(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, + int ea_buf_size, struct smb2_file_full_ea_info *data); extern int SMB2_query_info(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, |