Don't write outside the array in SetupDiGetClassDevPropertySheetsW

svn path=/trunk/; revision=19794
This commit is contained in:
Hervé Poussineau 2005-12-01 10:52:16 +00:00
parent 5073c262ee
commit de42f618e0

View file

@ -3733,14 +3733,14 @@ BOOL WINAPI SetupDiGetClassDevPropertySheetsW(
Request.DeviceInfoSet = DeviceInfoSet;
Request.DeviceInfoData = DeviceInfoData;
PropPageData.PropertySheetPages = &PropertySheetHeader->phpage[PropertySheetHeader->nPages];
PropPageData.MaximumNumberOfPages = PropertySheetHeaderPageListSize;
PropPageData.MaximumNumberOfPages = PropertySheetHeaderPageListSize - PropertySheetHeader->nPages;
PropPageData.NumberOfPages = 0;
ret = pPropPageProvider(&Request, GetClassDevPropertySheetsCallback, (LPARAM)&PropPageData);
if (!ret)
goto cleanup;
if (RequiredSize)
*RequiredSize = PropPageData.NumberOfPages;
*RequiredSize = PropPageData.NumberOfPages + PropertySheetHeader->nPages;
if (PropPageData.NumberOfPages <= PropPageData.MaximumNumberOfPages)
{
PropertySheetHeader->nPages += PropPageData.NumberOfPages;