r4190: When changing length calculations, get them right......
authorJeremy Allison <jra@samba.org>
Tue, 14 Dec 2004 01:11:22 +0000 (01:11 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:53:37 +0000 (10:53 -0500)
Jeremy.
(This used to be commit 63cfa904ad186bb9d793584d319bd4a7107cc8b9)

source3/smbd/process.c
source3/smbd/reply.c

index aa1f574767bd429355123435fdacaa079598d6e1..1372ebbf458b6101bc659f20c00b4cbc515260ed 100644 (file)
@@ -1177,7 +1177,7 @@ int chain_reply(char *inbuf,char *outbuf,int size,int bufsize)
        int outsize2;
        char inbuf_saved[smb_wct];
        char outbuf_saved[smb_wct];
-       int outsize = smb_len(outbuf);
+       int outsize = smb_len(outbuf) + 4;
 
        /* maybe its not chained */
        if (smb_com2 == 0xFF) {
index 3dae67efefe82ad90679f611778db568dd9b23b0..eead0bc1a1422b83e00dd680f1b38a77b6a30b50 100644 (file)
@@ -2112,6 +2112,7 @@ Returning short read of maximum allowed for compatibility with Windows 2000.\n",
 int send_file_readX(connection_struct *conn, char *inbuf,char *outbuf,int length, int len_outbuf,
                files_struct *fsp, SMB_OFF_T startpos, size_t smb_maxcnt)
 {
+       int outsize = 0;
        ssize_t nread = -1;
        char *data = smb_buf(outbuf);
 
@@ -2197,7 +2198,7 @@ int send_file_readX(connection_struct *conn, char *inbuf,char *outbuf,int length
                return(UNIXERROR(ERRDOS,ERRnoaccess));
        }
 
-       set_message(outbuf,12,nread,False);
+       outsize = set_message(outbuf,12,nread,False);
        SSVAL(outbuf,smb_vwv2,0xFFFF); /* Remaining - must be -1. */
        SSVAL(outbuf,smb_vwv5,nread);
        SSVAL(outbuf,smb_vwv6,smb_offset(data,outbuf));
@@ -2207,7 +2208,7 @@ int send_file_readX(connection_struct *conn, char *inbuf,char *outbuf,int length
        DEBUG( 3, ( "send_file_readX fnum=%d max=%d nread=%d\n",
                fsp->fnum, (int)smb_maxcnt, (int)nread ) );
 
-       return nread;
+       return outsize;
 }
 
 /****************************************************************************