* Log message from [1]:
Juan Lang <juan_lang(a)yahoo.com> - fix decoding of long-form data lengths - use exception handling in decoding - tests for these changes
One of added tests in the patch fails on winME: | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got c0000005 But the bad thing is that after running small code chunk another calls to CryptEncodeObjectEx() starts generating exceptions here. Mentioned code: + /* Try to decode some bogus large items */ + /* The buffer size is smaller than the encoded length, so this should fail + * with CRYPT_E_ASN1_EOD if it's being decoded. It's failing with + * CRYPT_E_ASN1_LARGE, meaning there's a limit on the size decoded. + * The magic limit under XP seems to be 0x061a8000 bytes--more than this + * fails with CRYPT_E_ASN1_LARGE. + */ + ret = CryptDecodeObjectEx(dwEncoding, X509_MULTI_BYTE_INTEGER, tooBig, + 0x7fffffff, CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &bufSize); + ok(!ret && GetLastError() == CRYPT_E_ASN1_LARGE, + "Expected CRYPT_E_ASN1_LARGE, got %08lx\n", GetLastError()); And example of parameters for the mentioned call (which after throws an exception of "Access violation" in another tests): CryptEncodeObjectEx( X509_ASN_ENCODING, X509_ENUMERATED, 1, CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &bufSize ); HTH to fix exceptions. If that informations is not enough, I will be glad to debug this via e-mail, Juan. :-) [1] http://www.winehq.org/hypermail/wine-cvs/2005/06/0683.html