[PATCH] cryptnet/tests: Explicitly set cbSize before each test.
Huw Davies
huw at codeweavers.com
Wed Oct 6 06:11:43 CDT 2021
This is clearer and also avoids out-of-bounds compiler warnings
relating to the memset()s.
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/cryptnet/tests/cryptnet.c | 59 ++++++++++++++++++++++------------
1 file changed, 39 insertions(+), 20 deletions(-)
diff --git a/dlls/cryptnet/tests/cryptnet.c b/dlls/cryptnet/tests/cryptnet.c
index b37a5e698f3..b545cf880ee 100644
--- a/dlls/cryptnet/tests/cryptnet.c
+++ b/dlls/cryptnet/tests/cryptnet.c
@@ -593,7 +593,7 @@ static SYSTEMTIME may2007 = { 2007, 5, 2, 1, 0, 0, 0, 0 };
static void test_verifyRevocation(void)
{
- CERT_REVOCATION_STATUS status = {sizeof(status)};
+ CERT_REVOCATION_STATUS status;
CERT_REVOCATION_PARA params = {sizeof(params)};
const CERT_CONTEXT *certs[2];
FILETIME time;
@@ -608,7 +608,8 @@ static void test_verifyRevocation(void)
}
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, 0, 0, NULL, 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == E_INVALIDARG, "got error %#x\n", GetLastError());
@@ -617,7 +618,8 @@ static void test_verifyRevocation(void)
todo_wine ok(!status.dwReason, "got reason %u\n", status.dwReason);
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, 0, 0, NULL, 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == E_INVALIDARG, "got error %#x\n", GetLastError());
@@ -626,7 +628,8 @@ static void test_verifyRevocation(void)
todo_wine ok(!status.dwReason, "got reason %u\n", status.dwReason);
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE, 0, NULL, 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == E_INVALIDARG, "got error %#x\n", GetLastError());
@@ -637,7 +640,8 @@ static void test_verifyRevocation(void)
certs[0] = CertCreateCertificateContext(X509_ASN_ENCODING, bigCert, sizeof(bigCert));
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE, 1, (void **)certs, 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == CRYPT_E_NO_REVOCATION_CHECK, "got error %#x\n", GetLastError());
@@ -652,7 +656,8 @@ static void test_verifyRevocation(void)
/* The root cert itself can't be checked for revocation */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE, 1, (void **)&certs[0], 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == CRYPT_E_NO_REVOCATION_CHECK, "got error %#x\n", GetLastError());
@@ -662,7 +667,8 @@ static void test_verifyRevocation(void)
/* Neither can the end cert */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE, 1, (void **)&certs[1], 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == CRYPT_E_NO_REVOCATION_CHECK, "got error %#x\n", GetLastError());
@@ -672,7 +678,8 @@ static void test_verifyRevocation(void)
/* Both certs together can't, either (they're not CRLs) */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE, 2, (void **)certs, 0, NULL, &status);
ok(!ret, "expected failure\n");
ok(GetLastError() == CRYPT_E_NO_REVOCATION_CHECK, "got error %#x\n", GetLastError());
@@ -688,7 +695,8 @@ static void test_verifyRevocation(void)
ok(ret, "failed to add CRL, error %u\n", GetLastError());
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
2, (void **)certs, 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -699,7 +707,8 @@ static void test_verifyRevocation(void)
/* Specifying CERT_VERIFY_REV_CHAIN_FLAG doesn't change things either */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
2, (void **)certs, CERT_VERIFY_REV_CHAIN_FLAG, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -711,7 +720,8 @@ static void test_verifyRevocation(void)
/* Again, specifying the issuer cert: no change */
params.pIssuerCert = certs[0];
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -725,7 +735,8 @@ static void test_verifyRevocation(void)
params.pftTimeToUse = &time;
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -749,7 +760,8 @@ static void test_verifyRevocation(void)
params.pftTimeToUse = NULL;
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -761,7 +773,8 @@ static void test_verifyRevocation(void)
SystemTimeToFileTime(&oct2007, &time);
params.pftTimeToUse = &time;
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -772,7 +785,8 @@ static void test_verifyRevocation(void)
SystemTimeToFileTime(&may2007, &time);
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -790,7 +804,8 @@ static void test_verifyRevocation(void)
params.pftTimeToUse = NULL;
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -802,7 +817,8 @@ static void test_verifyRevocation(void)
SystemTimeToFileTime(&oct2007, &time);
params.pftTimeToUse = &time;
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -813,7 +829,8 @@ static void test_verifyRevocation(void)
SystemTimeToFileTime(&may2007, &time);
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -826,7 +843,8 @@ static void test_verifyRevocation(void)
/* Test with the wrong encoding type. */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(0, CERT_CONTEXT_REVOCATION_TYPE,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
@@ -837,7 +855,8 @@ static void test_verifyRevocation(void)
/* Test with the wrong context type. */
SetLastError(0xdeadbeef);
- memset(&status.dwIndex, 0xcc, sizeof(status) - offsetof(CERT_REVOCATION_STATUS, dwIndex));
+ memset(&status, 0xcc, sizeof(status));
+ status.cbSize = sizeof(status);
ret = pCertVerifyRevocation(X509_ASN_ENCODING, 0xdeadbeef,
1, (void **)&certs[1], 0, ¶ms, &status);
ok(!ret, "expected failure\n");
--
2.23.0
More information about the wine-devel
mailing list