crypt32: Fix CryptFreeTls when calling with a freed index.

This commit is contained in:
Reece Dunn 2010-03-02 21:31:46 +00:00 committed by Alexandre Julliard
parent 1b46c0660d
commit a15dbfac22
2 changed files with 8 additions and 5 deletions

View File

@ -161,8 +161,13 @@ BOOL WINAPI I_CryptSetTls(DWORD dwTlsIndex, LPVOID lpTlsValue)
BOOL WINAPI I_CryptFreeTls(DWORD dwTlsIndex, DWORD unknown)
{
BOOL ret;
TRACE("(%d, %d)\n", dwTlsIndex, unknown);
return TlsFree(dwTlsIndex);
ret = TlsFree(dwTlsIndex);
if (!ret) SetLastError( E_INVALIDARG );
return ret;
}
BOOL WINAPI I_CryptGetOssGlobal(DWORD x)

View File

@ -254,10 +254,8 @@ static void test_cryptTls(void)
ret = pI_CryptFreeTls(index, 0);
ok(ret, "I_CryptFreeTls failed: %08x\n", GetLastError());
ret = pI_CryptFreeTls(index, 0);
/* Not sure if this fails because TlsFree should fail, so leave as
* todo for now.
*/
todo_wine ok(!ret && GetLastError() == E_INVALIDARG,
ok(!ret, "I_CryptFreeTls succeeded\n");
ok(GetLastError() == E_INVALIDARG,
"Expected E_INVALIDARG, got %08x\n", GetLastError());
}
/* Similar pass, check I_CryptDetachTls */