mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 17:34:06 +00:00
ntdll: Don't accept a query routine when using RTL_QUERY_REGISTRY_DIRECT.
This commit is contained in:
parent
f0707f1757
commit
54991feaae
|
@ -261,6 +261,8 @@ static NTSTATUS RTL_ReportRegistryValue(PKEY_VALUE_FULL_INFORMATION pInfo,
|
||||||
|
|
||||||
if (pQuery->Flags & RTL_QUERY_REGISTRY_DIRECT)
|
if (pQuery->Flags & RTL_QUERY_REGISTRY_DIRECT)
|
||||||
{
|
{
|
||||||
|
if (pQuery->QueryRoutine)
|
||||||
|
return STATUS_INVALID_PARAMETER;
|
||||||
if (str->MaximumLength < default_size)
|
if (str->MaximumLength < default_size)
|
||||||
return STATUS_BUFFER_TOO_SMALL;
|
return STATUS_BUFFER_TOO_SMALL;
|
||||||
memcpy(str->Buffer, pQuery->DefaultData, default_size);
|
memcpy(str->Buffer, pQuery->DefaultData, default_size);
|
||||||
|
@ -277,6 +279,9 @@ static NTSTATUS RTL_ReportRegistryValue(PKEY_VALUE_FULL_INFORMATION pInfo,
|
||||||
|
|
||||||
if (pQuery->Flags & RTL_QUERY_REGISTRY_DIRECT)
|
if (pQuery->Flags & RTL_QUERY_REGISTRY_DIRECT)
|
||||||
{
|
{
|
||||||
|
if (pQuery->QueryRoutine)
|
||||||
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
|
||||||
switch(pInfo->Type)
|
switch(pInfo->Type)
|
||||||
{
|
{
|
||||||
case REG_EXPAND_SZ:
|
case REG_EXPAND_SZ:
|
||||||
|
|
|
@ -2662,7 +2662,12 @@ static struct query_reg_values_test query_reg_values_tests[] =
|
||||||
/* DIRECT doesn't call the query routine and reads directly into a buffer */
|
/* DIRECT doesn't call the query routine and reads directly into a buffer */
|
||||||
{
|
{
|
||||||
{{ query_routine, RTL_QUERY_REGISTRY_DIRECT, (WCHAR*)L"WindowsDrive", &query_reg_values_direct_str }},
|
{{ query_routine, RTL_QUERY_REGISTRY_DIRECT, (WCHAR*)L"WindowsDrive", &query_reg_values_direct_str }},
|
||||||
STATUS_INVALID_PARAMETER, 0, WINE_TODO_RET | WINE_TODO_NAME | WINE_TODO_TYPE | WINE_TODO_SIZE | WINE_TODO_DATA
|
STATUS_INVALID_PARAMETER, 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{{ query_routine, RTL_QUERY_REGISTRY_DIRECT, (WCHAR*)L"I don't exist",
|
||||||
|
&query_reg_values_direct_str, REG_SZ, (WCHAR*)L"Some default" }},
|
||||||
|
STATUS_INVALID_PARAMETER, 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{{ NULL, RTL_QUERY_REGISTRY_DIRECT, (WCHAR*)L"WindowsDrive", &query_reg_values_direct_str }},
|
{{ NULL, RTL_QUERY_REGISTRY_DIRECT, (WCHAR*)L"WindowsDrive", &query_reg_values_direct_str }},
|
||||||
|
|
Loading…
Reference in a new issue