From 89e4b6bef4471e8d3e24b98d5d6c4f2cea79e061 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Fri, 26 Dec 2025 23:00:48 +0200 Subject: [PATCH] [NTDLL_APITEST] Add a test for LdrFindResource_U / CORE-20401 See CORE-20401, CORE-20408 --- .../rostests/apitests/ntdll/CMakeLists.txt | 1 + .../apitests/ntdll/LdrFindResource_U.c | 30 ++++++++++++++++++ modules/rostests/apitests/ntdll/bmp1.bmp | Bin 0 -> 66 bytes modules/rostests/apitests/ntdll/testdata.rc | 4 +++ modules/rostests/apitests/ntdll/testlist.c | 2 ++ 5 files changed, 37 insertions(+) create mode 100644 modules/rostests/apitests/ntdll/LdrFindResource_U.c create mode 100644 modules/rostests/apitests/ntdll/bmp1.bmp diff --git a/modules/rostests/apitests/ntdll/CMakeLists.txt b/modules/rostests/apitests/ntdll/CMakeLists.txt index 54e954ba069..71f8ec4af7e 100644 --- a/modules/rostests/apitests/ntdll/CMakeLists.txt +++ b/modules/rostests/apitests/ntdll/CMakeLists.txt @@ -39,6 +39,7 @@ add_dependencies(ntdll_crt_test_lib psdk) list(APPEND SOURCE DllLoadNotification.c LdrEnumResources.c + LdrFindResource_U.c LdrLoadDll.c load_notifications.c locale.c diff --git a/modules/rostests/apitests/ntdll/LdrFindResource_U.c b/modules/rostests/apitests/ntdll/LdrFindResource_U.c new file mode 100644 index 00000000000..5a0aa385401 --- /dev/null +++ b/modules/rostests/apitests/ntdll/LdrFindResource_U.c @@ -0,0 +1,30 @@ +/* + * PROJECT: ReactOS API tests + * LICENSE: MIT (https://spdx.org/licenses/MIT) + * PURPOSE: Test for LdrFindResource_U + * COPYRIGHT: Copyright 2025 Timo Kreuzer + */ + +#include "precomp.h" + +static void Test_CORE_20401(void) +{ + HMODULE hmod = GetModuleHandleW(NULL); + LDR_RESOURCE_INFO info; + IMAGE_RESOURCE_DATA_ENTRY *entry = NULL; + NTSTATUS Status; + + // Use LdrFindResource_U to find a bitmap resource called "NORMAL_FRAMECAPTION_BMP" + // CORE-20401 resulted in wrong comparison of strings containing underscores. + // If the test fails, the resource name comparison is probably broken (again). + info.Type = 2; // RT_BITMAP; + info.Name = (ULONG_PTR)L"NORMAL_FRAMECAPTION_BMP"; + info.Language = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL); + Status = LdrFindResource_U(hmod, &info, 3, &entry); + ok_ntstatus(Status, STATUS_SUCCESS); +} + +START_TEST(LdrFindResource_U) +{ + Test_CORE_20401(); +} diff --git a/modules/rostests/apitests/ntdll/bmp1.bmp b/modules/rostests/apitests/ntdll/bmp1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..43e4ac49d845870c6ad7167edf146946132e537b GIT binary patch literal 66 ncmZ?rbz*=3D