[PATCH 1/4] imagehlp/tests: Link directly to imagehlp and psapi.

Zebediah Figura z.figura12 at gmail.com
Sat Feb 13 11:15:24 CST 2021


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/imagehlp/tests/Makefile.in |  1 +
 dlls/imagehlp/tests/image.c     | 67 +++++--------------------
 dlls/imagehlp/tests/integrity.c | 88 +++++++++------------------------
 3 files changed, 35 insertions(+), 121 deletions(-)

diff --git a/dlls/imagehlp/tests/Makefile.in b/dlls/imagehlp/tests/Makefile.in
index 6c784401e99..43b434f690a 100644
--- a/dlls/imagehlp/tests/Makefile.in
+++ b/dlls/imagehlp/tests/Makefile.in
@@ -1,4 +1,5 @@
 TESTDLL   = imagehlp.dll
+IMPORTS   = imagehlp psapi
 
 C_SRCS = \
 	image.c \
diff --git a/dlls/imagehlp/tests/image.c b/dlls/imagehlp/tests/image.c
index 875d919bb75..c8d1a520c96 100644
--- a/dlls/imagehlp/tests/image.c
+++ b/dlls/imagehlp/tests/image.c
@@ -28,16 +28,6 @@
 
 #include "wine/test.h"
 
-static HMODULE hImageHlp;
-
-static BOOL (WINAPI *pImageGetDigestStream)(HANDLE, DWORD, DIGEST_FUNCTION, DIGEST_HANDLE);
-static BOOL (WINAPI *pBindImageEx)(DWORD Flags, const char *ImageName, const char *DllPath,
-                                   const char *SymbolPath, PIMAGEHLP_STATUS_ROUTINE StatusRoutine);
-static DWORD (WINAPI *pGetImageUnusedHeaderBytes)(PLOADED_IMAGE, LPDWORD);
-static PLOADED_IMAGE (WINAPI *pImageLoad)(PCSTR, PCSTR);
-static BOOL (WINAPI *pImageUnload)(PLOADED_IMAGE);
-
-
 /* minimal PE file image */
 #define VA_START 0x400000
 #define FILE_PE_START 0x50
@@ -322,13 +312,8 @@ static void test_get_digest_stream(void)
     DWORD count;
     struct update_accum accum = { 0, NULL };
 
-    if (!pImageGetDigestStream)
-    {
-        win_skip("ImageGetDigestStream function is not available\n");
-        return;
-    }
     SetLastError(0xdeadbeef);
-    ret = pImageGetDigestStream(NULL, 0, NULL, NULL);
+    ret = ImageGetDigestStream(NULL, 0, NULL, NULL);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
     file = create_temp_file(temp_file);
@@ -338,16 +323,16 @@ static void test_get_digest_stream(void)
         return;
     }
     SetLastError(0xdeadbeef);
-    ret = pImageGetDigestStream(file, 0, NULL, NULL);
+    ret = ImageGetDigestStream(file, 0, NULL, NULL);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
     SetLastError(0xdeadbeef);
-    ret = pImageGetDigestStream(NULL, 0, accumulating_stream_output, &accum);
+    ret = ImageGetDigestStream(NULL, 0, accumulating_stream_output, &accum);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
     /* Even with "valid" parameters, it fails with an empty file */
     SetLastError(0xdeadbeef);
-    ret = pImageGetDigestStream(file, 0, accumulating_stream_output, &accum);
+    ret = ImageGetDigestStream(file, 0, accumulating_stream_output, &accum);
     ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,
      "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
     /* Finally, with a valid executable in the file, it succeeds.  Note that
@@ -362,11 +347,11 @@ static void test_get_digest_stream(void)
     bin.nt_headers.OptionalHeader.SizeOfInitializedData = 0;
     bin.nt_headers.OptionalHeader.SizeOfImage = 0;
 
-    ret = pImageGetDigestStream(file, 0, accumulating_stream_output, &accum);
+    ret = ImageGetDigestStream(file, 0, accumulating_stream_output, &accum);
     ok(ret, "ImageGetDigestStream failed: %d\n", GetLastError());
     check_updates("flags = 0", &a1, &accum);
     free_updates(&accum);
-    ret = pImageGetDigestStream(file, CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO,
+    ret = ImageGetDigestStream(file, CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO,
      accumulating_stream_output, &accum);
     ok(ret, "ImageGetDigestStream failed: %d\n", GetLastError());
     check_updates("flags = CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO", &a2, &accum);
@@ -382,15 +367,9 @@ static void test_bind_image_ex(void)
     char temp_file[MAX_PATH];
     DWORD count;
 
-    if (!pBindImageEx)
-    {
-        win_skip("BindImageEx function is not available\n");
-        return;
-    }
-
     /* call with a non-existent file */
     SetLastError(0xdeadbeef);
-    ret = pBindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, "nonexistent.dll", 0, 0,
+    ret = BindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, "nonexistent.dll", 0, 0,
                        testing_status_routine);
     todo_wine ok(!ret && ((GetLastError() == ERROR_FILE_NOT_FOUND) ||
                  (GetLastError() == ERROR_INVALID_PARAMETER)),
@@ -408,12 +387,12 @@ static void test_bind_image_ex(void)
     CloseHandle(file);
 
     /* call with a proper PE file, but with StatusRoutine set to NULL */
-    ret = pBindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, temp_file, 0, 0,
+    ret = BindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, temp_file, 0, 0,
                        NULL);
     ok(ret, "BindImageEx failed: %d\n", GetLastError());
 
     /* call with a proper PE file and StatusRoutine */
-    ret = pBindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, temp_file, 0, 0,
+    ret = BindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, temp_file, 0, 0,
                        testing_status_routine);
     ok(ret, "BindImageEx failed: %d\n", GetLastError());
 
@@ -436,12 +415,6 @@ static void test_image_load(void)
     DWORD ret, count;
     HANDLE file;
 
-    if (!pImageLoad || !pImageUnload || !pGetImageUnusedHeaderBytes)
-    {
-        win_skip("ImageLoad functions are not available\n");
-        return;
-    }
-
     file = create_temp_file(temp_file);
     if (file == INVALID_HANDLE_VALUE)
     {
@@ -452,7 +425,7 @@ static void test_image_load(void)
     WriteFile(file, &bin, sizeof(bin), &count, NULL);
     CloseHandle(file);
 
-    img = pImageLoad(temp_file, NULL);
+    img = ImageLoad(temp_file, NULL);
     ok(img != NULL, "ImageLoad unexpectedly failed\n");
 
     if (img)
@@ -499,13 +472,13 @@ static void test_image_load(void)
            "unexpected SizeOfImage, got 0x%x instead of 0x600\n", img->SizeOfImage);
 
         count = 0xdeadbeef;
-        ret = pGetImageUnusedHeaderBytes(img, &count);
+        ret = GetImageUnusedHeaderBytes(img, &count);
         todo_wine
         ok(ret == 448, "GetImageUnusedHeaderBytes returned %u instead of 448\n", ret);
         todo_wine
         ok(count == 64, "unexpected size for unused header bytes, got %u instead of 64\n", count);
 
-        pImageUnload(img);
+        ImageUnload(img);
     }
 
     DeleteFileA(temp_file);
@@ -513,23 +486,7 @@ static void test_image_load(void)
 
 START_TEST(image)
 {
-    hImageHlp = LoadLibraryA("imagehlp.dll");
-
-    if (!hImageHlp)
-    {
-        win_skip("ImageHlp unavailable\n");
-        return;
-    }
-
-    pImageGetDigestStream = (void *) GetProcAddress(hImageHlp, "ImageGetDigestStream");
-    pBindImageEx = (void *) GetProcAddress(hImageHlp, "BindImageEx");
-    pGetImageUnusedHeaderBytes = (void *) GetProcAddress(hImageHlp, "GetImageUnusedHeaderBytes");
-    pImageLoad = (void *) GetProcAddress(hImageHlp, "ImageLoad");
-    pImageUnload = (void *) GetProcAddress(hImageHlp, "ImageUnload");
-
     test_get_digest_stream();
     test_bind_image_ex();
     test_image_load();
-
-    FreeLibrary(hImageHlp);
 }
diff --git a/dlls/imagehlp/tests/integrity.c b/dlls/imagehlp/tests/integrity.c
index 3b85c6a3a29..6d820fa0b1d 100644
--- a/dlls/imagehlp/tests/integrity.c
+++ b/dlls/imagehlp/tests/integrity.c
@@ -26,20 +26,12 @@
 #include "winerror.h"
 #include "winnt.h"
 #include "imagehlp.h"
+#define PSAPI_VERSION 1
 #include "psapi.h"
 
-static HMODULE hImageHlp, hPsapi, hNtdll;
+static HMODULE hNtdll;
 static char test_dll_path[MAX_PATH];
 
-static BOOL (WINAPI *pImageAddCertificate)(HANDLE, LPWIN_CERTIFICATE, PDWORD);
-static BOOL (WINAPI *pImageEnumerateCertificates)(HANDLE, WORD, PDWORD, PDWORD, DWORD);
-static BOOL (WINAPI *pImageGetCertificateData)(HANDLE, DWORD, LPWIN_CERTIFICATE, PDWORD);
-static BOOL (WINAPI *pImageGetCertificateHeader)(HANDLE, DWORD, LPWIN_CERTIFICATE);
-static BOOL (WINAPI *pImageRemoveCertificate)(HANDLE, DWORD);
-static PIMAGE_NT_HEADERS (WINAPI *pCheckSumMappedFile)(PVOID, DWORD, PDWORD, PDWORD);
-
-static BOOL (WINAPI *pGetModuleInformation)(HANDLE, HMODULE, LPMODULEINFO, DWORD);
-
 static PIMAGE_NT_HEADERS (WINAPI *pRtlImageNtHeader)(PVOID);
 
 static const char test_cert_data[] =
@@ -193,7 +185,7 @@ static DWORD test_add_certificate(const char *cert_data, int len)
     cert->wCertificateType = WIN_CERT_TYPE_PKCS_SIGNED_DATA;
     CopyMemory(cert->bCertificate, cert_data, len);
 
-    ret = pImageAddCertificate(hFile, cert, &index);
+    ret = ImageAddCertificate(hFile, cert, &index);
     ok(ret, "Unable to add certificate to image, error %x\n", GetLastError());
     trace("added cert index %d\n", index);
 
@@ -218,7 +210,7 @@ static void test_get_certificate(const char *cert_data, int index)
         return;
     }
 
-    ret = pImageGetCertificateData(hFile, index, NULL, &cert_len);
+    ret = ImageGetCertificateData(hFile, index, NULL, &cert_len);
     err = GetLastError();
 
     ok ((ret == FALSE) && (err == ERROR_INSUFFICIENT_BUFFER), "ImageGetCertificateData gave unexpected result; ret=%d / err=%x\n", ret, err);
@@ -232,7 +224,7 @@ static void test_get_certificate(const char *cert_data, int index)
         return;
     }
 
-    ret = pImageGetCertificateData(hFile, index, cert, &cert_len);
+    ret = ImageGetCertificateData(hFile, index, cert, &cert_len);
     ok(ret, "Unable to retrieve certificate; err=%x\n", GetLastError());
     ok(memcmp(cert->bCertificate, cert_data, cert_len - sizeof(WIN_CERTIFICATE)) == 0, "Certificate retrieved did not match original\n");
 
@@ -254,13 +246,13 @@ static void test_remove_certificate(int index)
         return;
     }
 
-    ret = pImageEnumerateCertificates(hFile, CERT_SECTION_TYPE_ANY, &orig_count, NULL, 0);
+    ret = ImageEnumerateCertificates(hFile, CERT_SECTION_TYPE_ANY, &orig_count, NULL, 0);
     ok (ret, "Unable to enumerate certificates in file; err=%x\n", GetLastError());
-    ret = pImageRemoveCertificate(hFile, index);
+    ret = ImageRemoveCertificate(hFile, index);
     ok (ret, "Unable to remove certificate from file; err=%x\n", GetLastError());
 
     /* Test to see if the certificate has actually been removed */
-    pImageEnumerateCertificates(hFile, CERT_SECTION_TYPE_ANY, &count, NULL, 0);
+    ImageEnumerateCertificates(hFile, CERT_SECTION_TYPE_ANY, &count, NULL, 0);
     ok (count == orig_count - 1, "Certificate count mismatch; orig=%d new=%d\n", orig_count, count);
 
     CloseHandle(hFile);
@@ -275,20 +267,14 @@ static void test_pe_checksum(void)
     char buffer[20];
     BOOL ret_bool;
 
-    if (!pCheckSumMappedFile)
-    {
-        win_skip("CheckSumMappedFile not supported, skipping tests\n");
-        return;
-    }
-
     SetLastError(0xdeadbeef);
-    ret = pCheckSumMappedFile(NULL, 0, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(NULL, 0, &checksum_orig, &checksum_new);
     ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok(((GetLastError() == ERROR_INVALID_PARAMETER)||(GetLastError() == 0xdeadbeef)),
        "Expected 0xdeadbeef (XP) or ERROR_INVALID_PARAMETER (Vista+), got %x\n", GetLastError());
 
     SetLastError(0xdeadbeef);
-    ret = pCheckSumMappedFile((void *)0xdeadbeef, 0, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile((void *)0xdeadbeef, 0, &checksum_orig, &checksum_new);
     ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok(((GetLastError() == ERROR_INVALID_PARAMETER)||(GetLastError() == 0xdeadbeef)),
        "Expected 0xdeadbeef (XP) or ERROR_INVALID_PARAMETER (Vista+), got %x\n", GetLastError());
@@ -296,53 +282,47 @@ static void test_pe_checksum(void)
     /* basic checksum tests */
     memset(buffer, 0x11, sizeof(buffer));
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new);
     ok(ret == NULL, "Expected NULL, got %p\n", ret);
     todo_wine ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig);
     todo_wine ok(checksum_new == 0xaabe, "Expected 0xaabe, got %x\n", checksum_new);
 
     memset(buffer, 0x22, sizeof(buffer));
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(buffer, sizeof(buffer), &checksum_orig, &checksum_new);
     ok(ret == NULL, "Expected NULL, got %p\n", ret);
     todo_wine ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig);
     todo_wine ok(checksum_new == 0x5569, "Expected 0x5569, got %x\n", checksum_new);
 
     memset(buffer, 0x22, sizeof(buffer));
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(buffer, 10, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(buffer, 10, &checksum_orig, &checksum_new);
     ok(ret == NULL, "Expected NULL, got %p\n", ret);
     todo_wine ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig);
     todo_wine ok(checksum_new == 0xaab4, "Expected 0xaab4, got %x\n", checksum_new);
 
     memset(buffer, 0x22, sizeof(buffer));
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(buffer, 11, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(buffer, 11, &checksum_orig, &checksum_new);
     ok(ret == NULL, "Expected NULL, got %p\n", ret);
     todo_wine ok(checksum_orig == 0, "Expected 0, got %x\n", checksum_orig);
     todo_wine ok(checksum_new == 0xaad7, "Expected 0xaad7, got %x\n", checksum_new);
 
     /* test checksum of PE module */
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(test_pe_executable, sizeof(test_pe_executable),
+    ret = CheckSumMappedFile(test_pe_executable, sizeof(test_pe_executable),
                               &checksum_orig, &checksum_new);
     ok((char *)ret == test_pe_executable + 0x80, "Expected %p, got %p\n", test_pe_executable + 0x80, ret);
     ok(checksum_orig == 0xabcdef11, "Expected 0xabcdef11, got %x\n", checksum_orig);
     ok(checksum_new == 0xaa4, "Expected 0xaa4, got %x\n", checksum_new);
 
-    if (!pGetModuleInformation)
-    {
-        win_skip("GetModuleInformation not supported, skipping tests\n");
-        return;
-    }
-
-    ret_bool = pGetModuleInformation(GetCurrentProcess(), GetModuleHandleA(NULL),
+    ret_bool = GetModuleInformation(GetCurrentProcess(), GetModuleHandleA(NULL),
                                      &modinfo, sizeof(modinfo));
     ok(ret_bool, "GetModuleInformation failed, error: %x\n", GetLastError());
 
     SetLastError(0xdeadbeef);
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, modinfo.SizeOfImage, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(modinfo.lpBaseOfDll, modinfo.SizeOfImage, &checksum_orig, &checksum_new);
     ok(ret != NULL, "Expected CheckSumMappedFile to succeed\n");
     ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError());
     ok(checksum_orig != 0xdeadbeef, "Expected orig checksum != 0xdeadbeef\n");
@@ -350,7 +330,7 @@ static void test_pe_checksum(void)
 
     SetLastError(0xdeadbeef);
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile((char *)modinfo.lpBaseOfDll + 100, modinfo.SizeOfImage - 100,
+    ret = CheckSumMappedFile((char *)modinfo.lpBaseOfDll + 100, modinfo.SizeOfImage - 100,
                               &checksum_orig, &checksum_new);
     ok(!ret, "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok(GetLastError() == 0xdeadbeef, "Expected err=0xdeadbeef, got %x\n", GetLastError());
@@ -361,27 +341,27 @@ static void test_pe_checksum(void)
     checksum_correct = nt_header->OptionalHeader.CheckSum;
 
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, (char *)nt_header - (char *)modinfo.lpBaseOfDll,
+    ret = CheckSumMappedFile(modinfo.lpBaseOfDll, (char *)nt_header - (char *)modinfo.lpBaseOfDll,
                               &checksum_orig, &checksum_new);
     ok(!ret || (ret == nt_header), "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok((checksum_orig == 0) || (checksum_orig == checksum_correct), "Expected %x, got %x\n", checksum_correct, checksum_orig);
     ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new);
 
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, sizeof(IMAGE_DOS_HEADER),
+    ret = CheckSumMappedFile(modinfo.lpBaseOfDll, sizeof(IMAGE_DOS_HEADER),
                               &checksum_orig, &checksum_new);
     ok(!ret || (ret == nt_header), "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok((checksum_orig == 0) || (checksum_orig == checksum_correct), "Expected %x, got %x\n", checksum_correct, checksum_orig);
     ok(checksum_new != 0 && checksum_new != 0xdeadbeef, "Got unexpected value %x\n", checksum_new);
 
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile(modinfo.lpBaseOfDll, 0, &checksum_orig, &checksum_new);
+    ret = CheckSumMappedFile(modinfo.lpBaseOfDll, 0, &checksum_orig, &checksum_new);
     ok(!ret || (ret == nt_header), "Expected CheckSumMappedFile to fail, got %p\n", ret);
     ok((checksum_orig == 0xdeadbeef) || (checksum_orig == checksum_correct), "Expected %x, got %x\n", checksum_correct, checksum_orig);
     ok((checksum_new == 0xdeadbeef) || (checksum_new != 0 && checksum_new != 0xdeadbeef), "Got unexpected value %x\n", checksum_new);
 
     checksum_orig = checksum_new = 0xdeadbeef;
-    ret = pCheckSumMappedFile((char *)modinfo.lpBaseOfDll + 1, 0,
+    ret = CheckSumMappedFile((char *)modinfo.lpBaseOfDll + 1, 0,
                               &checksum_orig, &checksum_new);
     ok(ret == NULL, "Expected NULL, got %p\n", ret);
     ok((checksum_orig == 0) || (checksum_orig == 0xdeadbeef), "Expected 0, got %x\n", checksum_orig);
@@ -392,33 +372,11 @@ START_TEST(integrity)
 {
     DWORD file_size, file_size_orig, first, second;
 
-    hImageHlp = LoadLibraryA("imagehlp.dll");
-
-    if (!hImageHlp)
-    {
-        win_skip("ImageHlp unavailable\n");
-        return;
-    }
-
     if (!copy_dll_file())
-    {
-        FreeLibrary(hImageHlp);
         return;
-    }
 
     file_size_orig = get_file_size();
 
-    pImageAddCertificate = (void *) GetProcAddress(hImageHlp, "ImageAddCertificate");
-    pImageEnumerateCertificates = (void *) GetProcAddress(hImageHlp, "ImageEnumerateCertificates");
-    pImageGetCertificateData = (void *) GetProcAddress(hImageHlp, "ImageGetCertificateData");
-    pImageGetCertificateHeader = (void *) GetProcAddress(hImageHlp, "ImageGetCertificateHeader");
-    pImageRemoveCertificate = (void *) GetProcAddress(hImageHlp, "ImageRemoveCertificate");
-    pCheckSumMappedFile = (void *) GetProcAddress(hImageHlp, "CheckSumMappedFile");
-
-    hPsapi = LoadLibraryA("psapi.dll");
-    if (hPsapi)
-        pGetModuleInformation = (void *) GetProcAddress(hPsapi, "GetModuleInformation");
-
     hNtdll = LoadLibraryA("ntdll.dll");
     if (hNtdll)
         pRtlImageNtHeader = (void *) GetProcAddress(hNtdll, "RtlImageNtHeader");
@@ -450,8 +408,6 @@ START_TEST(integrity)
 
     test_pe_checksum();
 
-    if (hPsapi) FreeLibrary(hPsapi);
     if (hNtdll) FreeLibrary(hNtdll);
-    FreeLibrary(hImageHlp);
     DeleteFileA(test_dll_path);
 }
-- 
2.20.1




More information about the wine-devel mailing list