diff options
author | Amin Azez <azez@ufomechanic.net> | 2008-03-07 10:55:49 +0000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-03-07 12:10:48 +0100 |
commit | 17af5a9f42e2ee8c342b4d20928da5b0e7d00045 (patch) | |
tree | e3992af4500d2f69c1fcf8c2f5f722a4576cc3f4 /source4 | |
parent | a7e1fa0bef17ecc46f642b23ef635acfb09fea04 (diff) | |
download | samba-17af5a9f42e2ee8c342b4d20928da5b0e7d00045.tar.gz samba-17af5a9f42e2ee8c342b4d20928da5b0e7d00045.tar.bz2 samba-17af5a9f42e2ee8c342b4d20928da5b0e7d00045.zip |
Use 32 bit storage for nttrans counts
Erroneous 16bit storage for nttrans counts meant that nttrans behaved
"strangely" for sizes of over 64K
As 32 bit is used in the SMB message and specified in
http://us4.samba.org/samba/ftp/specs/draft-leach-cifs-v1-spec-02.txt
section 3.13.2
this fix changes storage to match.
Signed-off-by: Amin Azez <azez@ufomechanic.net>
(This used to be commit d66b6c3823f003875e3b7cdf63617a894cceadf9)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/smb_server/smb/nttrans.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source4/smb_server/smb/nttrans.c b/source4/smb_server/smb/nttrans.c index f6edc407d6..a20c41ba4d 100644 --- a/source4/smb_server/smb/nttrans.c +++ b/source4/smb_server/smb/nttrans.c @@ -460,7 +460,7 @@ static NTSTATUS nttrans_backend(struct smbsrv_request *req, static void reply_nttrans_send(struct ntvfs_request *ntvfs) { struct smbsrv_request *req; - uint16_t params_left, data_left; + uint32_t params_left, data_left; uint8_t *params, *data; struct smb_nttrans *trans; struct nttrans_op *op; @@ -502,7 +502,7 @@ static void reply_nttrans_send(struct ntvfs_request *ntvfs) /* we need to divide up the reply into chunks that fit into the negotiated buffer size */ do { - uint16_t this_data, this_param, max_bytes; + uint32_t this_data, this_param, max_bytes; uint_t align1 = 1, align2 = (params_left ? 2 : 0); struct smbsrv_request *this_req; @@ -573,9 +573,9 @@ void smbsrv_reply_nttrans(struct smbsrv_request *req) { struct nttrans_op *op; struct smb_nttrans *trans; - uint16_t param_ofs, data_ofs; - uint16_t param_count, data_count; - uint16_t param_total, data_total; + uint32_t param_ofs, data_ofs; + uint32_t param_count, data_count; + uint32_t param_total, data_total; /* parse request */ if (req->in.wct < 19) { |