mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
fixed support for readx greater than 64k
This fixes bug 6547, where smbclient in S3 reads more than 64k at a time with readx.
This commit is contained in:
@ -59,8 +59,8 @@ NTSTATUS pvfs_read(struct ntvfs_module_context *ntvfs,
|
||||
}
|
||||
|
||||
maxcnt = rd->readx.in.maxcnt;
|
||||
if (maxcnt > UINT16_MAX && req->ctx->protocol < PROTOCOL_SMB2) {
|
||||
maxcnt = 0;
|
||||
if (maxcnt > 2*UINT16_MAX && req->ctx->protocol < PROTOCOL_SMB2) {
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
status = pvfs_check_lock(pvfs, f, req->smbpid,
|
||||
|
@ -831,7 +831,8 @@ static void reply_read_and_X_send(struct ntvfs_request *ntvfs)
|
||||
SMBSRV_VWV_RESERVED(4, 1);
|
||||
SSVAL(req->out.vwv, VWV(5), io->readx.out.nread);
|
||||
SSVAL(req->out.vwv, VWV(6), PTR_DIFF(io->readx.out.data, req->out.hdr));
|
||||
SMBSRV_VWV_RESERVED(7, 5);
|
||||
SSVAL(req->out.vwv, VWV(7), (io->readx.out.nread>>16));
|
||||
SMBSRV_VWV_RESERVED(8, 4);
|
||||
|
||||
smbsrv_chain_reply(req);
|
||||
}
|
||||
|
Reference in New Issue
Block a user