From 6cf0f2d34ffc6b95ad4281252b4f2fac049b863c Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 1 Dec 2015 10:46:06 -0800 Subject: [PATCH] sys: FSP_FSVRT_DEVICE_EXTENSION: align SecurityDescriptorBuf --- inc/winfsp/fsctl.h | 3 ++- src/sys/driver.h | 2 +- src/sys/misc.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/inc/winfsp/fsctl.h b/inc/winfsp/fsctl.h index 01ed512a..a36aba0c 100644 --- a/inc/winfsp/fsctl.h +++ b/inc/winfsp/fsctl.h @@ -21,7 +21,8 @@ extern const __declspec(selectany) GUID FspFsvrtDeviceClassGuid = /* alignment macros */ #define FSP_FSCTL_ALIGN_UP(x, s) (((x) + ((s) - 1L)) & ~((s) - 1L)) -#define FSP_FSCTL_DEFAULT_ALIGNMENT (sizeof(UINT64) * 2) +#define FSP_FSCTL_DEFAULT_ALIGNMENT (16) +#define FSP_FSCTL_DECLSPEC_ALIGN __declspec(align(16)) /* fsctl device codes */ #define FSP_FSCTL_CREATE \ diff --git a/src/sys/driver.h b/src/sys/driver.h index 7cce3e4e..d178899d 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -271,7 +271,7 @@ typedef struct FSP_IOQ Ioq; PVPB SwapVpb; BOOLEAN Deleted; - UINT8 SecurityDescriptorBuf[]; + FSP_FSCTL_DECLSPEC_ALIGN UINT8 SecurityDescriptorBuf[]; } FSP_FSVRT_DEVICE_EXTENSION; typedef struct { diff --git a/src/sys/misc.c b/src/sys/misc.c index 1242b4c7..d4f12530 100644 --- a/src/sys/misc.c +++ b/src/sys/misc.c @@ -47,7 +47,7 @@ BOOLEAN FspValidRelativeSecurityDescriptor( Result = RtlValidRelativeSecurityDescriptor(SecurityDescriptor, SecurityDescriptorLength, RequiredInformation); } - except(EXCEPTION_EXECUTE_HANDLER) + except (EXCEPTION_EXECUTE_HANDLER) { Result = FALSE; }