X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/33b1edda1f3fa65f5cad3b8a73cdc2fd61558ec9..0c33d3a6483e2493a29d662afc79a8c86dc6dfc5:/windows/winpgntc.c diff --git a/windows/winpgntc.c b/windows/winpgntc.c index 4074a165..7b8b5093 100644 --- a/windows/winpgntc.c +++ b/windows/winpgntc.c @@ -209,8 +209,10 @@ int agent_query(void *in, int inlen, void **out, int *outlen, filemap = CreateFileMapping(INVALID_HANDLE_VALUE, psa, PAGE_READWRITE, 0, AGENT_MAX_MSGLEN, mapname); - if (filemap == NULL || filemap == INVALID_HANDLE_VALUE) + if (filemap == NULL || filemap == INVALID_HANDLE_VALUE) { + sfree(mapname); return 1; /* *out == NULL, so failure */ + } p = MapViewOfFile(filemap, FILE_MAP_WRITE, 0, 0, 0); memcpy(p, in, inlen); cds.dwData = AGENT_COPYDATA_ID; @@ -237,6 +239,7 @@ int agent_query(void *in, int inlen, void **out, int *outlen, data->hwnd = hwnd; if (CreateThread(NULL, 0, agent_query_thread, data, 0, &threadid)) return 0; + sfree(mapname); sfree(data); } #endif @@ -258,6 +261,7 @@ int agent_query(void *in, int inlen, void **out, int *outlen, } UnmapViewOfFile(p); CloseHandle(filemap); + sfree(mapname); if (psd) LocalFree(psd); sfree(usersid);