diff --git a/ntoskrnl/se/audit.c b/ntoskrnl/se/audit.c index 9cc7c51f9f3..03604d30259 100644 --- a/ntoskrnl/se/audit.c +++ b/ntoskrnl/se/audit.c @@ -622,23 +622,25 @@ SepAccessCheckAndAuditAlarm( } /* Call the worker routine with the captured buffers */ - SepAccessCheckAndAuditAlarmWorker(&CapturedSubsystemName, - HandleId, - &SubjectContext, - &CapturedObjectTypeName, - &CapturedObjectName, - CapturedSecurityDescriptor, - CapturedPrincipalSelfSid, - DesiredAccess, - AuditType, - HaveAuditPrivilege, - CapturedObjectTypeList, - ObjectTypeListLength, - &LocalGenericMapping, - SafeGrantedAccessList, - SafeAccessStatusList, - &LocalGenerateOnClose, - UseResultList); + Status = SepAccessCheckAndAuditAlarmWorker(&CapturedSubsystemName, + HandleId, + &SubjectContext, + &CapturedObjectTypeName, + &CapturedObjectName, + CapturedSecurityDescriptor, + CapturedPrincipalSelfSid, + DesiredAccess, + AuditType, + HaveAuditPrivilege, + CapturedObjectTypeList, + ObjectTypeListLength, + &LocalGenericMapping, + SafeGrantedAccessList, + SafeAccessStatusList, + &LocalGenerateOnClose, + UseResultList); + if (!NT_SUCCESS(Status)) + goto Cleanup; /* Enter SEH to copy the data back to user mode */ _SEH2_TRY