From 34f84aae5577fb1989b001cfad4de581f33eb102 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 21 Oct 2004 01:44:46 +0000 Subject: r3103: use a destructor to ensure that on abnormnal rpc request termination it is removed from the pending list. (This used to be commit 33176e9751374de3b5dc3f5f9b19c6824140d90a) --- source4/librpc/rpc/dcerpc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index d41eebbf2f..e522f91423 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -819,6 +819,16 @@ static void dcerpc_request_recv_data(struct dcerpc_pipe *p, } +/* + make sure requests are cleaned up + */ +static int dcerpc_req_destructor(void *ptr) +{ + struct rpc_request *req = ptr; + DLIST_REMOVE(req->p->pending, req); + return 0; +} + /* perform the send size of a async dcerpc request */ @@ -903,6 +913,8 @@ struct rpc_request *dcerpc_request_send(struct dcerpc_pipe *p, remaining -= chunk; } + talloc_set_destructor(req, dcerpc_req_destructor); + return req; } -- cgit