summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/rpc_parse/parse_rpc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c
index 823e0e8d2a..6bdab2e437 100644
--- a/source3/rpc_parse/parse_rpc.c
+++ b/source3/rpc_parse/parse_rpc.c
@@ -404,6 +404,9 @@ void init_rpc_hdr_rb(RPC_HDR_RB *rpc,
BOOL smb_io_rpc_hdr_rb(const char *desc, RPC_HDR_RB *rpc, prs_struct *ps, int depth)
{
+ RPC_HDR_RB rpc2;
+ int i;
+
if (rpc == NULL)
return False;
@@ -424,6 +427,20 @@ BOOL smb_io_rpc_hdr_rb(const char *desc, RPC_HDR_RB *rpc, prs_struct *ps, int de
return False;
if(!smb_io_rpc_iface("", &rpc->transfer, ps, depth))
return False;
+
+ /* just chew through extra context id's for now */
+
+ for ( i=1; i<rpc->num_elements; i++ ) {
+ if(!prs_uint16("context_id ", ps, depth, &rpc2.context_id ))
+ return False;
+ if(!prs_uint8 ("num_syntaxes", ps, depth, &rpc2.num_syntaxes))
+ return False;
+
+ if(!smb_io_rpc_iface("", &rpc2.abstract, ps, depth))
+ return False;
+ if(!smb_io_rpc_iface("", &rpc2.transfer, ps, depth))
+ return False;
+ }
return True;
}