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);
}
/* make sure the data is in bounds */
if (req_data_oob(&req->in.bufinfo, io->writex.in.data, io->writex.in.count)) {
- smbsrv_send_error(req, NT_STATUS_FOOBAR);
+ smbsrv_send_error(req, NT_STATUS_DOS(ERRSRV, ERRerror));
return;
}
struct smbsrv_request *req;
union smb_lpq *lpq;
int i, maxcount;
- const uint_t el_size = 28;
+ const unsigned int el_size = 28;
SMBSRV_CHECK_ASYNC_STATUS(lpq,union smb_lpq);
void smbsrv_reply_lockingX(struct smbsrv_request *req)
{
union smb_lock *lck;
- uint_t total_locks, i;
- uint_t lck_size;
+ unsigned int total_locks, i;
+ unsigned int lck_size;
uint8_t *p;
/* parse request */
/* notice that the word parameters are not word aligned, so we don't use VWV() */
fname_len = SVAL(req->in.vwv, 5);
io->ntcreatex.in.flags = IVAL(req->in.vwv, 7);
- io->ntcreatex.in.root_fid = IVAL(req->in.vwv, 11);
+ io->ntcreatex.in.root_fid.ntvfs = smbsrv_pull_fnum(req, req->in.vwv, 11);
io->ntcreatex.in.access_mask = IVAL(req->in.vwv, 15);
io->ntcreatex.in.alloc_size = BVAL(req->in.vwv, 19);
io->ntcreatex.in.file_attr = IVAL(req->in.vwv, 27);