From 9a781f022b650ee8c779013c1622011cfefc5452 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Thu, 7 Oct 2010 07:21:08 +0000 Subject: [PATCH] [ADVAPI32] - Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation. See issue #2492 for more details. svn path=/trunk/; revision=49028 --- reactos/dll/win32/advapi32/reg/reg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/advapi32/reg/reg.c b/reactos/dll/win32/advapi32/reg/reg.c index 26036dc1963..b6968d57ce2 100644 --- a/reactos/dll/win32/advapi32/reg/reg.c +++ b/reactos/dll/win32/advapi32/reg/reg.c @@ -2928,12 +2928,12 @@ RegEnumValueW(HKEY hKey, status = NtEnumerateValueKey( KeyHandle, index, KeyValueFullInformation, buffer, total_size, &total_size ); - if (status && status != STATUS_BUFFER_OVERFLOW) goto done; + if (status && (status != STATUS_BUFFER_OVERFLOW) && (status != STATUS_BUFFER_TOO_SMALL)) goto done; if (value || data) { /* retry with a dynamically allocated buffer */ - while (status == STATUS_BUFFER_OVERFLOW) + while ((status == STATUS_BUFFER_OVERFLOW) || (status == STATUS_BUFFER_TOO_SMALL)) { if (buf_ptr != buffer) HeapFree( GetProcessHeap(), 0, buf_ptr ); if (!(buf_ptr = HeapAlloc( GetProcessHeap(), 0, total_size )))