From 2bc3b7f8502a7ef9293f7a1f74fdf6f7430ad03b Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Tue, 11 Jun 2024 23:40:15 -0600 Subject: [PATCH] ntdll: Don't call a null QueryRoutine in RtlQueryRegistryValues. --- dlls/ntdll/reg.c | 4 ++-- dlls/ntdll/tests/reg.c | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c index 37619db2032..d4bf530537a 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c @@ -265,7 +265,7 @@ static NTSTATUS RTL_ReportRegistryValue(PKEY_VALUE_FULL_INFORMATION pInfo, memcpy(str->Buffer, pQuery->DefaultData, default_size); return STATUS_SUCCESS; } - else + else if (pQuery->QueryRoutine) { status = pQuery->QueryRoutine(pQuery->Name, pQuery->DefaultType, pQuery->DefaultData, pQuery->DefaultLength, pContext, pQuery->EntryContext); @@ -336,7 +336,7 @@ static NTSTATUS RTL_ReportRegistryValue(PKEY_VALUE_FULL_INFORMATION pInfo, break; } } - else + else if (pQuery->QueryRoutine) { if((pQuery->Flags & RTL_QUERY_REGISTRY_NOEXPAND) || (pInfo->Type != REG_EXPAND_SZ && pInfo->Type != REG_MULTI_SZ)) diff --git a/dlls/ntdll/tests/reg.c b/dlls/ntdll/tests/reg.c index acb6967fc7b..58cefd6ed30 100644 --- a/dlls/ntdll/tests/reg.c +++ b/dlls/ntdll/tests/reg.c @@ -2636,7 +2636,11 @@ static struct query_reg_values_test query_reg_values_tests[] = /* Name without query routine or DIRECT */ { {{ NULL, 0, (WCHAR*)L"WindowsDrive" }}, - STATUS_SUCCESS, 0, WINE_CRASH + STATUS_SUCCESS, 0 + }, + { + {{ NULL, 0, (WCHAR*)L"I don't exist", NULL, REG_SZ, (WCHAR*)L"Some default" }}, + STATUS_SUCCESS, 0 }, /* The query routine is called for every value in current key */ {