Jacek Caban : server: Return KeyFullInformation maximal string lengths in bytes.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 12 09:58:27 CST 2015
Module: wine
Branch: master
Commit: 3d5db6bdf5e13a61a226ff5531e8f3fb18ecf3e9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3d5db6bdf5e13a61a226ff5531e8f3fb18ecf3e9
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Nov 11 14:16:59 2015 +0100
server: Return KeyFullInformation maximal string lengths in bytes.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/advapi32/registry.c | 12 ++++++------
server/registry.c | 13 ++++---------
2 files changed, 10 insertions(+), 15 deletions(-)
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index 67120cd..0f23f4c 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -895,10 +895,10 @@ LSTATUS WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPD
if (class_len) *class_len = info->ClassLength / sizeof(WCHAR);
if (subkeys) *subkeys = info->SubKeys;
- if (max_subkey) *max_subkey = info->MaxNameLen;
- if (max_class) *max_class = info->MaxClassLen;
+ if (max_subkey) *max_subkey = info->MaxNameLen / sizeof(WCHAR);
+ if (max_class) *max_class = info->MaxClassLen / sizeof(WCHAR);
if (values) *values = info->Values;
- if (max_value) *max_value = info->MaxValueNameLen;
+ if (max_value) *max_value = info->MaxValueNameLen / sizeof(WCHAR);
if (max_data) *max_data = info->MaxValueDataLen;
if (modif) *modif = *(FILETIME *)&info->LastWriteTime;
@@ -1090,10 +1090,10 @@ LSTATUS WINAPI RegQueryInfoKeyA( HKEY hkey, LPSTR class, LPDWORD class_len, LPDW
else status = STATUS_SUCCESS;
if (subkeys) *subkeys = info->SubKeys;
- if (max_subkey) *max_subkey = info->MaxNameLen;
- if (max_class) *max_class = info->MaxClassLen;
+ if (max_subkey) *max_subkey = info->MaxNameLen / sizeof(WCHAR);
+ if (max_class) *max_class = info->MaxClassLen / sizeof(WCHAR);
if (values) *values = info->Values;
- if (max_value) *max_value = info->MaxValueNameLen;
+ if (max_value) *max_value = info->MaxValueNameLen / sizeof(WCHAR);
if (max_data) *max_data = info->MaxValueDataLen;
if (modif) *modif = *(FILETIME *)&info->LastWriteTime;
diff --git a/server/registry.c b/server/registry.c
index 3c9ae70..94777b3 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -908,18 +908,13 @@ static void enum_key( const struct key *key, int index, int info_class,
case KeyFullInformation:
for (i = 0; i <= key->last_subkey; i++)
{
- struct key *subkey = key->subkeys[i];
- len = subkey->namelen / sizeof(WCHAR);
- if (len > max_subkey) max_subkey = len;
- len = subkey->classlen / sizeof(WCHAR);
- if (len > max_class) max_class = len;
+ if (key->subkeys[i]->namelen > max_subkey) max_subkey = key->subkeys[i]->namelen;
+ if (key->subkeys[i]->classlen > max_class) max_class = key->subkeys[i]->classlen;
}
for (i = 0; i <= key->last_value; i++)
{
- len = key->values[i].namelen / sizeof(WCHAR);
- if (len > max_value) max_value = len;
- len = key->values[i].len;
- if (len > max_data) max_data = len;
+ if (key->values[i].namelen > max_value) max_value = key->values[i].namelen;
+ if (key->values[i].len > max_data) max_data = key->values[i].len;
}
reply->max_subkey = max_subkey;
reply->max_class = max_class;
More information about the wine-cvs
mailing list