Author: jra
Date: 2005-06-08 21:01:04 +0000 (Wed, 08 Jun 2005)
New Revision: 7413

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7413

Log:
Turns out we can't use set_message(outbut,12,nread,True) as this will
zero out what we just read. Instead use correct copy size to set up
header for reply.
Jeremy.

Modified:
   trunk/source/smbd/aio.c


Changeset:
Modified: trunk/source/smbd/aio.c
===================================================================
--- trunk/source/smbd/aio.c     2005-06-08 20:52:42 UTC (rev 7412)
+++ trunk/source/smbd/aio.c     2005-06-08 21:01:04 UTC (rev 7413)
@@ -224,7 +224,8 @@
        }
 
        /* Copy the SMB header already setup in outbuf. */
-       memcpy(aio_ex->outbuf, outbuf, smb_size);
+       memcpy(aio_ex->outbuf, outbuf, smb_buf(outbuf) - outbuf);
+       SCVAL(aio_ex->outbuf,smb_vwv0,0xFF); /* Never a chained reply. */
 
        a = &aio_ex->acb;
 
@@ -292,7 +293,8 @@
        SMB_ASSERT(aio_ex->inbuf == inbuf);
 
        /* Copy the SMB header already setup in outbuf. */
-       memcpy(aio_ex->outbuf, outbuf, smb_size);
+       memcpy(aio_ex->outbuf, outbuf, smb_buf(outbuf) - outbuf);
+       SCVAL(aio_ex->outbuf,smb_vwv0,0xFF); /* Never a chained reply. */
 
        a = &aio_ex->acb;
 
@@ -322,7 +324,6 @@
        srv_defer_sign_response(aio_ex->mid);
        outstanding_aio_calls++;
        return True;
-       return False;
 }
 
 
@@ -361,7 +362,7 @@
 
                outsize = (UNIXERROR(ERRDOS,ERRnoaccess));
        } else {
-               outsize = set_message(outbuf,12,nread,True);
+               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));

Reply via email to