mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
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.
This commit is contained in:
parent
155d8121e6
commit
6e69223dc2
@ -163,6 +163,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;
|
||||
@ -260,6 +261,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;
|
||||
@ -284,6 +286,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);
|
||||
|
Loading…
Reference in New Issue
Block a user