crypt32: Re: exception handling, part 2

Saulius Krasuckas saulius2 at ar.fi.lt
Fri Jul 22 10:00:17 CDT 2005


* On Fri, 22 Jul 2005, Juan Lang wrote:
> 
> > But the bad thing is that after running small code chunk another calls 
> > to CryptEncodeObjectEx() starts generating exceptions here.
> 
> the error handling on Win9x wasn't as good as on XP.  

Hmm.  I don't understand the code, but if I change (+) BYTE tooBig 
definition, then exceptions are gone, but return codes still differs in 
the output (|):

+ tooBig[] = { 0x00, 0x84, 0xff, 0xff, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 8009310b

+ tooBig[] = { 0x02, 0x84, 0xf0, 0xff, 0xff, 0xfc };
+ tooBig[] = { 0x02, 0x84, 0xff, 0x0f, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093102

+ tooBig[] = { 0x02, 0x04, 0xff, 0xff, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 00000000

+ tooBig[] = { 0x02, 0x80, 0xff, 0xff, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093103

+ tooBig[] = { 0x02, 0x83, 0xff, 0xff, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got c0000005

+ tooBig[] = { 0x02, 0x84, 0x0f, 0xff, 0xff, 0xfc };
+ tooBig[] = { 0x02, 0x84, 0xff, 0xff, 0xff, 0xfc };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093106

+ tooBig[] = { 0x02, 0x84, 0xff, 0xff, 0xff, 0xfd };
| encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got c0000005 
| (plus further exceptions)


For me it is strange that "{0x02, 0x83, ..." gives same GLE (c0000005) as 
original tooBig value, but exceptions aren't being catched in debugger.  
I thought if there may be some sense in tuning tooBig value, then could it 
be done?  If not, then sorry for the noise.



More information about the wine-devel mailing list