mirror of
https://github.com/reactos/reactos.git
synced 2024-10-16 06:04:13 +00:00
Don't write outside the array in SetupDiGetClassDevPropertySheetsW
svn path=/trunk/; revision=19794
This commit is contained in:
parent
5073c262ee
commit
de42f618e0
|
@ -3733,14 +3733,14 @@ BOOL WINAPI SetupDiGetClassDevPropertySheetsW(
|
||||||
Request.DeviceInfoSet = DeviceInfoSet;
|
Request.DeviceInfoSet = DeviceInfoSet;
|
||||||
Request.DeviceInfoData = DeviceInfoData;
|
Request.DeviceInfoData = DeviceInfoData;
|
||||||
PropPageData.PropertySheetPages = &PropertySheetHeader->phpage[PropertySheetHeader->nPages];
|
PropPageData.PropertySheetPages = &PropertySheetHeader->phpage[PropertySheetHeader->nPages];
|
||||||
PropPageData.MaximumNumberOfPages = PropertySheetHeaderPageListSize;
|
PropPageData.MaximumNumberOfPages = PropertySheetHeaderPageListSize - PropertySheetHeader->nPages;
|
||||||
PropPageData.NumberOfPages = 0;
|
PropPageData.NumberOfPages = 0;
|
||||||
ret = pPropPageProvider(&Request, GetClassDevPropertySheetsCallback, (LPARAM)&PropPageData);
|
ret = pPropPageProvider(&Request, GetClassDevPropertySheetsCallback, (LPARAM)&PropPageData);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (RequiredSize)
|
if (RequiredSize)
|
||||||
*RequiredSize = PropPageData.NumberOfPages;
|
*RequiredSize = PropPageData.NumberOfPages + PropertySheetHeader->nPages;
|
||||||
if (PropPageData.NumberOfPages <= PropPageData.MaximumNumberOfPages)
|
if (PropPageData.NumberOfPages <= PropPageData.MaximumNumberOfPages)
|
||||||
{
|
{
|
||||||
PropertySheetHeader->nPages += PropPageData.NumberOfPages;
|
PropertySheetHeader->nPages += PropPageData.NumberOfPages;
|
||||||
|
|
Loading…
Reference in a new issue