From aaf908ab323126f2dac09ddfdd053267591e5c9e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 27 Aug 2009 20:23:40 +0200 Subject: [PATCH] setupapi: Fix a structure size check for 64-bit. --- dlls/setupapi/devinst.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index 8a181381a80..89e3cb6d389 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; -- 2.11.4.GIT