summaryrefslogtreecommitdiff
path: root/source4/smb_server
diff options
context:
space:
mode:
authorAmin Azez <azez@ufomechanic.net>2008-03-07 10:55:49 +0000
committerStefan Metzmacher <metze@samba.org>2008-03-07 12:10:48 +0100
commit17af5a9f42e2ee8c342b4d20928da5b0e7d00045 (patch)
treee3992af4500d2f69c1fcf8c2f5f722a4576cc3f4 /source4/smb_server
parenta7e1fa0bef17ecc46f642b23ef635acfb09fea04 (diff)
downloadsamba-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/smb_server')
-rw-r--r--source4/smb_server/smb/nttrans.c10
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) {