Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> --- programs/reg/query.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/programs/reg/query.c b/programs/reg/query.c index 66e54548688..7e42719faf9 100644 --- a/programs/reg/query.c +++ b/programs/reg/query.c @@ -213,7 +213,7 @@ static int query_value(HKEY hkey, WCHAR *value_name, WCHAR *path, BOOL recurse) static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing) { LONG rc; - DWORD num_values; + DWORD num_subkeys, num_values; DWORD max_value_len = 256, value_len; DWORD max_data_bytes = 2048, data_size; DWORD subkey_len; @@ -222,8 +222,8 @@ static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing) BYTE *data; HKEY subkey; - rc = RegQueryInfoKeyW(hkey, NULL, NULL, NULL, NULL, NULL, NULL, - &num_values, NULL, NULL, NULL, NULL); + rc = RegQueryInfoKeyW(hkey, NULL, NULL, NULL, &num_subkeys, NULL, + NULL, &num_values, NULL, NULL, NULL, NULL); if (rc) return 1; if (num_values || recursing) @@ -265,6 +265,9 @@ static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing) if (i || recursing) output_string(newlineW); + if (!num_subkeys) + return 0; + subkey_name = malloc(MAX_SUBKEY_LEN * sizeof(WCHAR)); path_len = lstrlenW(path); -- 2.31.1