CRYPT32/tests: don't crash on win98

Saulius Krasuckas saulius2 at ar.fi.lt
Sun Nov 13 05:25:33 CST 2005


As far as we cannot handle exceptions in wine tests easily, this is the 
only way to make it running successfully.


Log message:
	Saulius Krasuckas <saulius.krasuckas at ieee.org>
	Disable code that crashes on Win98 SE.


Index: dlls/crypt32/tests/encode.c
===================================================================
RCS file: /home/wine/wine/dlls/crypt32/tests/encode.c,v
retrieving revision 1.27
diff -p -u -r1.27 encode.c
--- dlls/crypt32/tests/encode.c	30 Sep 2005 10:35:31 -0000	1.27
+++ dlls/crypt32/tests/encode.c	13 Nov 2005 10:20:50 -0000
@@ -98,6 +98,8 @@ static void test_encodeInt(DWORD dwEncod
      &bufSize);
     ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
      "Expected ERROR_FILE_NOT_FOUND, got %ld\n", GetLastError());
+#if 0
+    /* Crashes on Win98 SE */
     /* check with NULL integer buffer.  Windows XP incorrectly returns an
      * NTSTATUS.
      */
@@ -105,6 +107,7 @@ static void test_encodeInt(DWORD dwEncod
      &bufSize);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     for (i = 0; i < sizeof(ints) / sizeof(ints[0]); i++)
     {
         /* encode as normal integer */
@@ -326,6 +329,8 @@ static void test_decodeInt(DWORD dwEncod
     ok(!ret && GetLastError() == CRYPT_E_ASN1_LARGE,
      "Expected CRYPT_E_ASN1_LARGE, got %08lx\n", GetLastError());
      */
+#if 0
+    /* Crashes on Win98 SE */
     /* This will try to decode the buffer and overflow it, check that it's
      * caught.
      */
@@ -333,6 +338,7 @@ static void test_decodeInt(DWORD dwEncod
      0x01ffffff, CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &bufSize);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
 }
 
 static const BYTE bin18[] = {0x0a,0x01,0x01,0};
@@ -670,11 +676,14 @@ static void test_encodeName(DWORD dwEnco
     DWORD size = 0, i;
     BOOL ret;
 
+#if 0
+    /* Crashes on Win98 SE */
     /* Test with NULL pvStructInfo */
     ret = CryptEncodeObjectEx(dwEncoding, X509_NAME, NULL,
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* Test with empty CERT_NAME_INFO */
     info.cRDN = 0;
     info.rgRDN = NULL;
@@ -687,12 +696,15 @@ static void test_encodeName(DWORD dwEnco
          "Got unexpected encoding for empty name\n");
         LocalFree(buf);
     }
+#if 0
+    /* Crashes on Win98 SE */
     /* Test with bogus CERT_RDN */
     info.cRDN = 1;
     ret = CryptEncodeObjectEx(dwEncoding, X509_NAME, &info,
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* Test with empty CERT_RDN */
     rdn.cRDNAttr = 0;
     rdn.rgRDNAttr = NULL;
@@ -707,6 +719,8 @@ static void test_encodeName(DWORD dwEnco
          "Got unexpected encoding for empty RDN array\n");
         LocalFree(buf);
     }
+#if 0
+    /* Crashes on Win98 SE */
     /* Test with bogus attr array */
     rdn.cRDNAttr = 1;
     rdn.rgRDNAttr = NULL;
@@ -714,6 +728,7 @@ static void test_encodeName(DWORD dwEnco
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* oddly, a bogus OID is accepted by Windows XP; not testing.
     attrs[0].pszObjId = "bogus";
     attrs[0].dwValueType = CERT_RDN_PRINTABLE_STRING;
@@ -2007,11 +2022,14 @@ static void test_encodeCertToBeSigned(DW
     DWORD size = 0;
     CERT_INFO info = { 0 };
 
+#if 0
+    /* Crashes on Win98 SE */
     /* Test with NULL pvStructInfo */
     ret = CryptEncodeObjectEx(dwEncoding, X509_CERT_TO_BE_SIGNED, NULL,
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* Test with a V1 cert */
     ret = CryptEncodeObjectEx(dwEncoding, X509_CERT_TO_BE_SIGNED, &info,
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
@@ -2107,10 +2125,13 @@ static void test_decodeCertToBeSigned(DW
      CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == CRYPT_E_ASN1_EOD,
      "Expected CRYPT_E_ASN1_EOD, got %08lx\n", GetLastError());
+#if 0
+    /* Crashes on Win98 SE */
     ret = CryptDecodeObjectEx(dwEncoding, X509_CERT_TO_BE_SIGNED, NULL, 1,
      CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* The following certs all fail with CRYPT_E_ASN1_CORRUPT, because at a
      * minimum a cert must have a non-zero serial number, an issuer, and a
      * subject.
@@ -2299,10 +2320,13 @@ static void test_encodeCRLToBeSigned(DWO
     }
     /* v1 CRL with a name and a NULL entry pointer */
     info.cCRLEntry = 1;
+#if 0
+    /* Crashes on Win98 SE */
     ret = CryptEncodeObjectEx(dwEncoding, X509_CERT_CRL_TO_BE_SIGNED, &info,
      CRYPT_ENCODE_ALLOC_FLAG, NULL, (BYTE *)&buf, &size);
     ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
      "Expected STATUS_ACCESS_VIOLATION, got %08lx\n", GetLastError());
+#endif
     /* now set an empty entry */
     info.rgCRLEntry = &entry;
     ret = CryptEncodeObjectEx(dwEncoding, X509_CERT_CRL_TO_BE_SIGNED, &info,



More information about the wine-patches mailing list