From 4a00783c39625c5a0bd42d6e736191f278d33730 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Fri, 25 Jul 2008 11:28:11 -0700 Subject: [PATCH] Add test showing only file header is checked for cabinet files --- dlls/crypt32/sip.c | 2 +- dlls/crypt32/tests/sip.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletions(-) diff --git a/dlls/crypt32/sip.c b/dlls/crypt32/sip.c index f8e8be4..171165a 100644 --- a/dlls/crypt32/sip.c +++ b/dlls/crypt32/sip.c @@ -332,7 +332,7 @@ BOOL WINAPI CryptSIPRetrieveSubjectGuid bRet = TRUE; goto cleanup1; } - /* Quick-n-dirty check for a cab file. FIXME: use FDIIsCabinet instead? */ + /* Quick-n-dirty check for a cab file. */ if (!memcmp(pMapped, cabHdr, sizeof(cabHdr))) { *pgSubject = cabGUID; diff --git a/dlls/crypt32/tests/sip.c b/dlls/crypt32/tests/sip.c index b01229c..96a97e8 100644 --- a/dlls/crypt32/tests/sip.c +++ b/dlls/crypt32/tests/sip.c @@ -266,6 +266,22 @@ static void test_SIPRetrieveSubjectGUID( /* Clean up */ DeleteFileA(tempfile); + /* Create a file with just the .cab header 'MSCF' */ + file = CreateFileW(tempfileW, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL); + WriteFile(file, cabFileData, 4, &written, NULL); + CloseHandle(file); + + SetLastError(0xdeadbeef); + memset(&subject, 1, sizeof(GUID)); + ret = CryptSIPRetrieveSubjectGuid(tempfileW, NULL, &subject); + ok( ret, "CryptSIPRetrieveSubjectGuid failed: %d (0x%08x)\n", + GetLastError(), GetLastError() ); + ok ( !memcmp(&subject, &cabGUID, sizeof(GUID)), + "Expected GUID %s for cabinet file, not %s\n", show_guid(&cabGUID, guid1), show_guid(&subject, guid2)); + + /* Clean up */ + DeleteFileW(tempfileW); + /* Create a .cab file */ file = CreateFileW(tempfileW, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL); WriteFile(file, cabFileData, sizeof(cabFileData), &written, NULL); -- 1.4.1