This fixes bug 6547, where smbclient in S3 reads more than 64k at a
time with readx.
}
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,
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);
}