when multiple independent large rpc calls come in on the same pipe,
authorLuke Leighton <lkcl@samba.org>
Tue, 9 Feb 1999 21:42:39 +0000 (21:42 +0000)
committerLuke Leighton <lkcl@samba.org>
Tue, 9 Feb 1999 21:42:39 +0000 (21:42 +0000)
prev_pdu_file_offset was not being re-initialised to zero.

source/rpc_server/srv_pipe_hnd.c
source/smbd/ipc.c

index ca5dde18d25a07d8b2ed9661800feea59412245f..27aa79381cde75c6972edc65a22c5587f973be35 100644 (file)
@@ -208,11 +208,8 @@ int read_pipe(pipes_struct *p, char *data, uint32 pos, int n)
        int data_pos; /* entire rpc data sent - no headers, no auth verifiers */
        int this_pdu_data_pos;
 
-       DEBUG(6,("read_pipe: %x", p->pnum));
-
-       DEBUG(6,("name: %s open: %s pos: %d len: %d",
-                p->name,
-                BOOLSTR(p->open),
+       DEBUG(6,("read_pipe: %x name: %s open: %s pos: %d len: %d",
+                p->pnum, p->name, BOOLSTR(p->open),
                 pos, n));
 
        if (!p || !p->open)
index 41892504adcaebde1fa777d24060266b18dacce7..31ae8e6fc02a84db7ac29dbc3b07c238ec71f47a 100644 (file)
@@ -3236,7 +3236,8 @@ static int api_fd_reply(connection_struct *conn,uint16 vuid,char *outbuf,
                                  subcommand, p->name, pnum));
 
                /* record maximum data length that can be transmitted in an SMBtrans */
-               p->file_offset = mdrcnt;
+               p->file_offset          = mdrcnt;
+               p->prev_pdu_file_offset = 0;
 
                 DEBUG(10,("api_fd_reply: p:%p file_offset: %d\n",
                            p, p->file_offset));