diff options
author | Volker Lendecke <vl@samba.org> | 2012-02-26 16:49:09 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2012-03-10 15:34:11 +0100 |
commit | 90b33a05e967e9e29c4584bed188ef6fa5a3fbf0 (patch) | |
tree | 52b88ef421378abe267a39486c07335c90b2308b /source3/smbd/pipes.c | |
parent | a28a740f5805e0bd766cedaa581066c6e9b15e3a (diff) | |
download | samba-90b33a05e967e9e29c4584bed188ef6fa5a3fbf0.tar.gz samba-90b33a05e967e9e29c4584bed188ef6fa5a3fbf0.tar.xz samba-90b33a05e967e9e29c4584bed188ef6fa5a3fbf0.zip |
s3: Make sure the andX chains are ended correctly
Normally chain_reply took care of this. This will go away soon.
Diffstat (limited to 'source3/smbd/pipes.c')
-rw-r--r-- | source3/smbd/pipes.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/pipes.c b/source3/smbd/pipes.c index 9e5dfc30180..d567537ed61 100644 --- a/source3/smbd/pipes.c +++ b/source3/smbd/pipes.c @@ -146,6 +146,9 @@ void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req) /* Prepare the reply */ reply_outbuf(req, 15, 0); + SSVAL(req->outbuf, smb_vwv0, 0xff); /* andx chain ends */ + SSVAL(req->outbuf, smb_vwv1, 0); /* no andx offset */ + /* Mark the opened file as an existing named pipe in message mode. */ SSVAL(req->outbuf,smb_vwv9,2); SSVAL(req->outbuf,smb_vwv10,0xc700); @@ -354,6 +357,9 @@ static void pipe_write_andx_done(struct tevent_req *subreq) reply_outbuf(req, 6, 0); + SSVAL(req->outbuf, smb_vwv0, 0xff); /* andx chain ends */ + SSVAL(req->outbuf, smb_vwv1, 0); /* no andx offset */ + nwritten = (state->pipe_start_message_raw ? nwritten + 2 : nwritten); SSVAL(req->outbuf,smb_vwv2,nwritten); @@ -417,6 +423,9 @@ void reply_pipe_read_and_X(struct smb_request *req) state->smb_mincnt = SVAL(req->vwv+6, 0); reply_outbuf(req, 12, state->smb_maxcnt); + SSVAL(req->outbuf, smb_vwv0, 0xff); /* andx chain ends */ + SSVAL(req->outbuf, smb_vwv1, 0); /* no andx offset */ + data = (uint8_t *)smb_buf(req->outbuf); /* |