From dfb04271eb94d0a64cd776b597b08a732dc6dbbe Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 13 Mar 2007 22:58:23 +0000 Subject: r21835: fixed a rpc server bug where we failed to remove a call from one linked list when moving it to another. This could cause a valgrind error under the RPC-SCANNER test. (This used to be commit 9ba8c008513e362fbb860af899006505cadb4a2f) --- source4/rpc_server/dcerpc_server.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source4/rpc_server/dcerpc_server.h') diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h index a1f771339a..0804b86d30 100644 --- a/source4/rpc_server/dcerpc_server.h +++ b/source4/rpc_server/dcerpc_server.h @@ -71,6 +71,13 @@ struct dcesrv_interface { const void *private; }; +enum dcesrv_call_list { + DCESRV_LIST_NONE, + DCESRV_LIST_CALL_LIST, + DCESRV_LIST_FRAGMENTED_CALL_LIST, + DCESRV_LIST_PENDING_CALL_LIST +}; + /* the state of an ongoing dcerpc call */ struct dcesrv_call_state { struct dcesrv_call_state *next, *prev; @@ -78,6 +85,11 @@ struct dcesrv_call_state { struct dcesrv_connection_context *context; struct ncacn_packet pkt; + /* + which list this request is in, if any + */ + enum dcesrv_call_list list; + /* the backend can mark the call * with DCESRV_CALL_STATE_FLAG_ASYNC * that will cause the frontend to not touch r->out -- cgit