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 */ {