sys: STATUS_INVALID_USER_BUFFER

This commit is contained in:
Bill Zissimopoulos 2016-03-18 15:48:43 -07:00
parent 57460d7452
commit 965c86b79b

View File

@ -271,7 +271,9 @@ NTSTATUS FspBufferUserBuffer(PIRP Irp, ULONG Length, LOCK_OPERATION Operation)
except (EXCEPTION_EXECUTE_HANDLER) except (EXCEPTION_EXECUTE_HANDLER)
{ {
FspFree(SystemBuffer); FspFree(SystemBuffer);
return STATUS_INVALID_USER_BUFFER;
NTSTATUS Result = GetExceptionCode();
return FsRtlIsNtstatusExpected(Result) ? STATUS_INVALID_USER_BUFFER : Result;
} }
} }
else else
@ -302,7 +304,9 @@ NTSTATUS FspLockUserBuffer(PIRP Irp, ULONG Length, LOCK_OPERATION Operation)
except (EXCEPTION_EXECUTE_HANDLER) except (EXCEPTION_EXECUTE_HANDLER)
{ {
IoFreeMdl(Mdl); IoFreeMdl(Mdl);
return GetExceptionCode();
NTSTATUS Result = GetExceptionCode();
return FsRtlIsNtstatusExpected(Result) ? STATUS_INVALID_USER_BUFFER : Result;
} }
Irp->MdlAddress = Mdl; Irp->MdlAddress = Mdl;
@ -509,7 +513,8 @@ NTSTATUS FspQuerySecurityDescriptorInfo(SECURITY_INFORMATION SecurityInformation
} }
except (EXCEPTION_EXECUTE_HANDLER) except (EXCEPTION_EXECUTE_HANDLER)
{ {
Result = STATUS_INVALID_USER_BUFFER; Result = GetExceptionCode();
Result = FsRtlIsNtstatusExpected(Result) ? STATUS_INVALID_USER_BUFFER : Result;
} }
return STATUS_BUFFER_TOO_SMALL == Result ? STATUS_BUFFER_OVERFLOW : Result; return STATUS_BUFFER_TOO_SMALL == Result ? STATUS_BUFFER_OVERFLOW : Result;