From 0506d3cdc0ec6e6af4a7f864cca92b9cc8f94c6d Mon Sep 17 00:00:00 2001 From: Jeremy White Date: Mon, 30 Nov 2009 17:05:23 -0600 Subject: [PATCH] winspool: Add a test which shows the flaws in the current all enumeration. --- dlls/winspool.drv/tests/info.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c index fedfb7e0c8b..7d2631f9dcd 100644 --- a/dlls/winspool.drv/tests/info.c +++ b/dlls/winspool.drv/tests/info.c @@ -1245,6 +1245,15 @@ static void test_EnumPrinterDrivers(void) buffer = HeapAlloc(GetProcessHeap(), 0, pcbNeeded); res = EnumPrinterDriversA(NULL, env_all, 1, buffer, pcbNeeded, &pcbNeeded, &pcReturned); ok(res, "EnumPrinterDriversA failed %u\n", GetLastError()); + if (res && pcReturned > 0) + { + DRIVER_INFO_1 *di_1 = (DRIVER_INFO_1 *)buffer; + todo_wine + ok((LPBYTE) di_1->pName == NULL || (LPBYTE) di_1->pName < buffer || + (LPBYTE) di_1->pName >= (LPBYTE)(di_1 + pcReturned), + "Driver Information not in sequence; pName %p, top of data %p\n", + di_1->pName, di_1 + pcReturned); + } HeapFree(GetProcessHeap(), 0, buffer); }