X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/274186e868133a9f79843edebbf01b0f0e61330a..cc18f25619e3eca6233c4e162985390ee80e26a9:/windows/winpgnt.c diff --git a/windows/winpgnt.c b/windows/winpgnt.c index e26621c7..21a69cc0 100644 --- a/windows/winpgnt.c +++ b/windows/winpgnt.c @@ -174,7 +174,7 @@ static void forget_passphrases(void) { while (count234(passphrases) > 0) { char *pp = index234(passphrases, 0); - memset(pp, 0, strlen(pp)); + smemclr(pp, strlen(pp)); delpos234(passphrases, 0); free(pp); } @@ -968,7 +968,7 @@ static void answer_msg(void *msg) MD5Init(&md5c); MD5Update(&md5c, response_source, 48); MD5Final(response_md5, &md5c); - memset(response_source, 0, 48); /* burn the evidence */ + smemclr(response_source, 48); /* burn the evidence */ freebn(response); /* and that evidence */ freebn(challenge); /* yes, and that evidence */ freebn(reqkey.exponent); /* and free some memory ... */ @@ -1938,8 +1938,10 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, } #endif if (!EqualSid(mapowner, ourself) && - !EqualSid(mapowner, ourself2)) + !EqualSid(mapowner, ourself2)) { + CloseHandle(filemap); return 0; /* security ID mismatch! */ + } #ifdef DEBUG_IPC debug(("security stuff matched\n")); #endif