X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fbase%2Fsetup%2Fusetup%2Fpartlist.c;h=477a20edf67ceb220563a0e4a6722d67d50c7970;hp=de4d0a0b6874ab6f491fafc3e6108cc06e344f91;hb=d112ca439132a0729876c4554b4abfa35b55e062;hpb=eb77bd4e850c63e75c5a7bcb85edb392cbdcd91b diff --git a/reactos/base/setup/usetup/partlist.c b/reactos/base/setup/usetup/partlist.c index de4d0a0b687..477a20edf67 100644 --- a/reactos/base/setup/usetup/partlist.c +++ b/reactos/base/setup/usetup/partlist.c @@ -511,16 +511,16 @@ SystemConfigurationDataQueryRoutine(PWSTR ValueName, for (i = 0; i < FullResourceDescriptor->PartialResourceList.Count; i++) { if (FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].Type != CmResourceTypeDeviceSpecific || - FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize != sizeof(CM_INT13_DRIVE_PARAMETER)) + FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize % sizeof(CM_INT13_DRIVE_PARAMETER) != 0) continue; - *Int13Drives = RtlAllocateHeap(ProcessHeap, 0, sizeof(CM_INT13_DRIVE_PARAMETER)); + *Int13Drives = RtlAllocateHeap(ProcessHeap, 0, FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize); if (*Int13Drives == NULL) return STATUS_NO_MEMORY; memcpy( *Int13Drives, &FullResourceDescriptor->PartialResourceList.PartialDescriptors[i + 1], - sizeof(CM_INT13_DRIVE_PARAMETER)); + FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize); return STATUS_SUCCESS; } return STATUS_UNSUCCESSFUL;