X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=pageantc.c;h=82cfb20558af3fde4a702698e8fae4961a2afaa5;hb=3730ada5ce457468441b32d7e84157e481b8ba75;hp=49b588ebf20d8d10b967a39227c87128fa17692f;hpb=0e67e1b2919c88733d41a83e48b6416840051249;p=PuTTY.git diff --git a/pageantc.c b/pageantc.c index 49b588eb..82cfb205 100644 --- a/pageantc.c +++ b/pageantc.c @@ -6,6 +6,8 @@ #include #include +#include "puttymem.h" + #define AGENT_COPYDATA_ID 0x804e50ba /* random goop */ #define AGENT_MAX_MSGLEN 8192 @@ -21,16 +23,18 @@ ((unsigned long)(unsigned char)(cp)[2] << 8) | \ ((unsigned long)(unsigned char)(cp)[3])) -int agent_exists(void) { +int agent_exists(void) +{ HWND hwnd; hwnd = FindWindow("Pageant", "Pageant"); if (!hwnd) - return FALSE; + return FALSE; else - return TRUE; + return TRUE; } -void agent_query(void *in, int inlen, void **out, int *outlen) { +void agent_query(void *in, int inlen, void **out, int *outlen) +{ HWND hwnd; char mapname[64]; HANDLE filemap; @@ -44,28 +48,28 @@ void agent_query(void *in, int inlen, void **out, int *outlen) { hwnd = FindWindow("Pageant", "Pageant"); debug(("hwnd is %p\n", hwnd)); if (!hwnd) - return; + return; sprintf(mapname, "PageantRequest%08x", GetCurrentThreadId()); filemap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, - 0, AGENT_MAX_MSGLEN, mapname); + 0, AGENT_MAX_MSGLEN, mapname); if (!filemap) - return; + return; p = MapViewOfFile(filemap, FILE_MAP_WRITE, 0, 0, 0); memcpy(p, in, inlen); cds.dwData = AGENT_COPYDATA_ID; - cds.cbData = 1+strlen(mapname); + cds.cbData = 1 + strlen(mapname); cds.lpData = mapname; - id = SendMessage(hwnd, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds); + id = SendMessage(hwnd, WM_COPYDATA, (WPARAM) NULL, (LPARAM) & cds); debug(("return is %d\n", id)); if (id > 0) { - retlen = 4 + GET_32BIT(p); - debug(("len is %d\n", retlen)); - ret = malloc(retlen); - if (ret) { - memcpy(ret, p, retlen); - *out = ret; - *outlen = retlen; - } + retlen = 4 + GET_32BIT(p); + debug(("len is %d\n", retlen)); + ret = smalloc(retlen); + if (ret) { + memcpy(ret, p, retlen); + *out = ret; + *outlen = retlen; + } } UnmapViewOfFile(p); CloseHandle(filemap); @@ -73,7 +77,8 @@ void agent_query(void *in, int inlen, void **out, int *outlen) { #ifdef TESTMODE -int main(void) { +int main(void) +{ void *msg; int len; int i; @@ -81,7 +86,7 @@ int main(void) { agent_query("\0\0\0\1\1", 5, &msg, &len); debug(("%d:", len)); for (i = 0; i < len; i++) - debug((" %02x", ((unsigned char *)msg)[i])); + debug((" %02x", ((unsigned char *) msg)[i])); debug(("\n")); return 0; }