diff options
Diffstat (limited to 'source4/smb_server')
-rw-r--r-- | source4/smb_server/trans2.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/source4/smb_server/trans2.c b/source4/smb_server/trans2.c index a8cad915f9..3ca9bafcfa 100644 --- a/source4/smb_server/trans2.c +++ b/source4/smb_server/trans2.c @@ -827,21 +827,9 @@ static NTSTATUS trans2_parse_sfileinfo(struct smbsrv_request *req, return NT_STATUS_OK; case RAW_SFILEINFO_EA_SET: - CHECK_MIN_BLOB_SIZE(blob, 4); - len = IVAL(blob->data, 0); - if (len > blob->length || len < 4) { - return NT_STATUS_INFO_LENGTH_MISMATCH; - } - { - DATA_BLOB blob2; - blob2.data = blob->data+4; - blob2.length = len-4; - len = ea_pull_struct(&blob2, req, &st->ea_set.in.ea); - } - if (len == 0) { - return NT_STATUS_INVALID_PARAMETER; - } - return NT_STATUS_OK; + return ea_pull_list(blob, req, + &st->ea_set.in.num_eas, + &st->ea_set.in.eas); case SMB_SFILEINFO_BASIC_INFO: case SMB_SFILEINFO_BASIC_INFORMATION: |