Skip to content
Snippets Groups Projects
Commit 11b89407 authored by Simon Tatham's avatar Simon Tatham
Browse files

Close agent named-pipe handles when queries complete.

I was cleaning up the 'struct handle', but not the underlying HANDLE.
As a result, any PuTTY process that makes a request to Pageant keeps
the named pipe connection open until the end of the process's
lifetime.

(cherry picked from commit 6e69223d)
parent 6976bf60
No related branches found
No related tags found
No related merge requests found
......@@ -169,6 +169,7 @@ bool agent_exists(void)
struct agent_pending_query {
struct handle *handle;
HANDLE os_handle;
strbuf *response;
void (*callback)(void *, void *, int);
void *callback_ctx;
......@@ -266,6 +267,7 @@ static agent_pending_query *named_pipe_agent_query(
pq = snew(agent_pending_query);
pq->handle = handle_input_new(pipehandle, named_pipe_agent_gotdata, pq, 0);
pq->os_handle = pipehandle;
pipehandle = INVALID_HANDLE_VALUE; /* prevent it being closed below */
pq->response = strbuf_new_nm();
pq->callback = callback;
......@@ -290,6 +292,7 @@ static agent_pending_query *named_pipe_agent_query(
void agent_cancel_query(agent_pending_query *pq)
{
handle_free(pq->handle);
CloseHandle(pq->os_handle);
if (pq->response)
strbuf_free(pq->response);
sfree(pq);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment