Module: wine Branch: master Commit: aaf908ab323126f2dac09ddfdd053267591e5c9e URL: http://source.winehq.org/git/wine.git/?a=commit;h=aaf908ab323126f2dac09ddfdd...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Aug 27 20:23:40 2009 +0200
setupapi: Fix a structure size check for 64-bit.
---
dlls/setupapi/devinst.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index 8a18138..89e3cb6 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -2916,8 +2916,7 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA( { struct DeviceInfoSet *set = DeviceInfoSet; struct InterfaceInfo *info; - DWORD bytesNeeded = offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA_A, DevicePath) - + 1; + DWORD bytesNeeded = FIELD_OFFSET(SP_DEVICE_INTERFACE_DETAIL_DATA_A, DevicePath[1]); BOOL ret = FALSE;
TRACE("(%p, %p, %p, %d, %p, %p)\n", DeviceInfoSet, @@ -2937,8 +2936,8 @@ BOOL WINAPI SetupDiGetDeviceInterfaceDetailA( SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } - if (DeviceInterfaceDetailData && (DeviceInterfaceDetailData->cbSize != - offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA_A, DevicePath) + sizeof(char))) + if (DeviceInterfaceDetailData && + DeviceInterfaceDetailData->cbSize != sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A)) { SetLastError(ERROR_INVALID_USER_BUFFER); return FALSE;