- Handle query security descriptor

- Add SEH protection

svn path=/trunk/; revision=42684
This commit is contained in:
Dmitry Chapyshev 2009-08-15 09:39:56 +00:00
parent b0922201e8
commit a70df9a883

View file

@ -1107,8 +1107,10 @@ IopSecurityFile(IN PVOID ObjectBody,
/* Check what kind of request this was */ /* Check what kind of request this was */
if (OperationCode == QuerySecurityDescriptor) if (OperationCode == QuerySecurityDescriptor)
{ {
DPRINT1("FIXME: Device Query security descriptor UNHANDLED\n"); return SeQuerySecurityDescriptorInfo(SecurityInformation,
return STATUS_SUCCESS; SecurityDescriptor,
BufferLength,
&DeviceObject->SecurityDescriptor);
} }
else if (OperationCode == DeleteSecurityDescriptor) else if (OperationCode == DeleteSecurityDescriptor)
{ {
@ -1262,8 +1264,16 @@ IopSecurityFile(IN PVOID ObjectBody,
/* Callers usually expect the normalized form */ /* Callers usually expect the normalized form */
if (Status == STATUS_BUFFER_OVERFLOW) Status = STATUS_BUFFER_TOO_SMALL; if (Status == STATUS_BUFFER_OVERFLOW) Status = STATUS_BUFFER_TOO_SMALL;
/* Return length */ _SEH2_TRY
*BufferLength = IoStatusBlock.Information; {
/* Return length */
*BufferLength = IoStatusBlock.Information;
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
Status = _SEH2_GetExceptionCode();
}
_SEH2_END;
} }
/* Return Status */ /* Return Status */