From 2fe90d0d4401701d0d97478d0fead2ed49e71a00 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 5 Jan 2010 14:38:56 -0800 Subject: [PATCH] Fix bug #7020 - smbd using 2G memory. When deferring an async pipe writeX and readX transfer the outstanding request struct onto the conn struct. This needs freeing after the packet is finally processed. Jeremy. --- source3/smbd/pipes.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/source3/smbd/pipes.c b/source3/smbd/pipes.c index 2686cf4..878d171 100644 --- a/source3/smbd/pipes.c +++ b/source3/smbd/pipes.c @@ -326,6 +326,11 @@ static void pipe_write_andx_done(struct tevent_req *subreq) done: chain_reply(req); + /* + * We must free here as the ownership of req was + * moved to the connection struct in reply_pipe_write_and_X(). + */ + TALLOC_FREE(req); } /**************************************************************************** @@ -431,4 +436,9 @@ static void pipe_read_andx_done(struct tevent_req *subreq) done: chain_reply(req); + /* + * We must free here as the ownership of req was + * moved to the connection struct in reply_pipe_read_and_X(). + */ + TALLOC_FREE(req); } -- 1.5.4.3