From b6c31bea3df9a6b0da381e48a85a74580619399a Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 19 May 2015 09:59:09 -0400 Subject: [PATCH] advapi32: Use STATUS_BUFFER_TOO_SMALL for buffer overflows in RegQueryInfoKeyW. --- dlls/advapi32/registry.c | 2 +- dlls/advapi32/tests/registry.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c index 06833d69b48..633c0c4b993 100644 --- a/dlls/advapi32/registry.c +++ b/dlls/advapi32/registry.c @@ -865,7 +865,7 @@ LSTATUS WINAPI RegQueryInfoKeyW( HKEY hkey, LPWSTR class, LPDWORD class_len, LPD if (class_len && (info->ClassLength/sizeof(WCHAR) + 1 > *class_len)) { - status = STATUS_BUFFER_OVERFLOW; + status = STATUS_BUFFER_TOO_SMALL; } else { diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c index 20b9bd896a7..c862b46822a 100644 --- a/dlls/advapi32/tests/registry.c +++ b/dlls/advapi32/tests/registry.c @@ -1823,7 +1823,7 @@ static void test_reg_query_info(void) memset(classbufferW, 0x55, sizeof(classbufferW)); classlen = 1; ret = RegQueryInfoKeyW(subkey, classbufferW, &classlen, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - todo_wine ok(ret == ERROR_INSUFFICIENT_BUFFER, "ret = %d\n", ret); + ok(ret == ERROR_INSUFFICIENT_BUFFER, "ret = %d\n", ret); ok(classlen == 0 /* win8 */ || classlen == strlen(subkey_class), "classlen = %u\n", classlen); memset(expectbufferW, 0x55, sizeof(expectbufferW)); @@ -1846,7 +1846,7 @@ static void test_reg_query_info(void) memset(classbufferW, 0x55, sizeof(classbufferW)); classlen = sizeof(subkey_class) - 1; ret = RegQueryInfoKeyW(subkey, classbufferW, &classlen, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - todo_wine ok(ret == ERROR_INSUFFICIENT_BUFFER, "ret = %d\n", ret); + ok(ret == ERROR_INSUFFICIENT_BUFFER, "ret = %d\n", ret); ok(classlen == sizeof(subkey_class) - 2 /* win8 */ || classlen == strlen(subkey_class), "classlen = %u\n", classlen); memset(expectbufferW, 0x55, sizeof(expectbufferW)); -- 2.11.4.GIT