mirror of
https://github.com/samba-team/samba.git
synced 2025-02-25 17:57:42 +03:00
r16699: the layout of SMB2 Read and Write is identical...
so we know that the 9th bytes is just uninitialized padding metze (This used to be commit f97a21b970ed23973cced2c67b5bc9ecd7afee88)
This commit is contained in:
parent
5b19070ac7
commit
d63dd113ae
@ -1649,7 +1649,6 @@ union smb_read {
|
||||
/* struct smb2_handle handle; */
|
||||
uint64_t unknown1; /* 0x0000000000000000 */
|
||||
uint64_t unknown2; /* 0x0000000000000000 */
|
||||
uint8_t _bug;
|
||||
} in;
|
||||
struct {
|
||||
/* static body buffer 16 (0x10) bytes */
|
||||
@ -1771,11 +1770,10 @@ union smb_write {
|
||||
} in;
|
||||
struct {
|
||||
/* static body buffer 17 (0x11) bytes */
|
||||
/* uint16_t buffer_code; 0x11 */
|
||||
/* uint16_t buffer_code; 0x11 = 0x10 + 1*/
|
||||
uint16_t _pad;
|
||||
uint32_t nwritten;
|
||||
uint64_t unknown1; /* 0x0000000000000000 */
|
||||
uint8_t _bug;
|
||||
} out;
|
||||
} smb2;
|
||||
};
|
||||
|
@ -31,7 +31,7 @@ struct smb2_request *smb2_read_send(struct smb2_tree *tree, struct smb2_read *io
|
||||
{
|
||||
struct smb2_request *req;
|
||||
|
||||
req = smb2_request_init_tree(tree, SMB2_OP_READ, 0x31, False, 0);
|
||||
req = smb2_request_init_tree(tree, SMB2_OP_READ, 0x30, True, 0);
|
||||
if (req == NULL) return NULL;
|
||||
|
||||
SSVAL(req->out.body, 0x02, 0); /* pad */
|
||||
@ -40,7 +40,6 @@ struct smb2_request *smb2_read_send(struct smb2_tree *tree, struct smb2_read *io
|
||||
smb2_push_handle(req->out.body+0x10, &io->in.file.handle);
|
||||
SBVAL(req->out.body, 0x20, io->in.unknown1);
|
||||
SBVAL(req->out.body, 0x28, io->in.unknown2);
|
||||
SCVAL(req->out.body, 0x30, io->in._bug);
|
||||
|
||||
smb2_transport_send(req);
|
||||
|
||||
|
@ -63,12 +63,11 @@ NTSTATUS smb2_write_recv(struct smb2_request *req, struct smb2_write *io)
|
||||
return smb2_request_destroy(req);
|
||||
}
|
||||
|
||||
SMB2_CHECK_PACKET_RECV(req, 0x11, False);
|
||||
SMB2_CHECK_PACKET_RECV(req, 0x10, True);
|
||||
|
||||
io->out._pad = SVAL(req->in.body, 0x02);
|
||||
io->out.nwritten = IVAL(req->in.body, 0x04);
|
||||
io->out.unknown1 = BVAL(req->in.body, 0x08);
|
||||
io->out._bug = CVAL(req->in.body, 0x10);
|
||||
|
||||
return smb2_request_destroy(req);
|
||||
}
|
||||
|
@ -1064,7 +1064,6 @@ static NTSTATUS ntvfs_map_write_finish(struct ntvfs_module_context *ntvfs,
|
||||
wr->smb2.out._pad = 0;
|
||||
wr->smb2.out.nwritten = wr2->generic.out.nwritten;
|
||||
wr->smb2.out.unknown1 = 0;
|
||||
wr->smb2.out._bug = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -178,7 +178,6 @@ void smb2srv_read_recv(struct smb2srv_request *req)
|
||||
io->smb2.in.file.ntvfs = smb2srv_pull_handle(req, req->in.body, 0x10);
|
||||
io->smb2.in.unknown1 = BVAL(req->in.body, 0x20);
|
||||
io->smb2.in.unknown2 = BVAL(req->in.body, 0x28);
|
||||
io->smb2.in._bug = CVAL(req->in.body, 0x30);
|
||||
|
||||
SMB2SRV_CHECK_FILE_HANDLE(io->smb2.in.file.ntvfs);
|
||||
|
||||
@ -202,7 +201,6 @@ static void smb2srv_write_send(struct ntvfs_request *ntvfs)
|
||||
SSVAL(req->out.body, 0x02, io->smb2.out._pad);
|
||||
SIVAL(req->out.body, 0x04, io->smb2.out.nwritten);
|
||||
SBVAL(req->out.body, 0x08, io->smb2.out.unknown1);
|
||||
SCVAL(req->out.body, 0x10, io->smb2.out._bug);
|
||||
|
||||
smb2srv_send_reply(req);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user