[NPFS_NEW]

Use _SEH2_YIELD when exiting from a _SEH2 block via a return or a goto (otherwise --> bug in the stack).
This limitation will be removed in SEH3, but it's not used at the moment.

svn path=/trunk/; revision=60052
This commit is contained in:
Hermès Bélusca-Maïto 2013-09-12 00:16:42 +00:00
parent 479489298b
commit 7af0cfc398
3 changed files with 4 additions and 4 deletions

View file

@ -402,7 +402,7 @@ NpAddDataQueueEntry(IN ULONG NamedPipeEnd,
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
NpFreeClientSecurityContext(ClientContext);
return _SEH2_GetExceptionCode();
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;

View file

@ -336,7 +336,7 @@ NpTransceive(IN PDEVICE_OBJECT DeviceObject,
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
return _SEH2_GetExceptionCode();
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;
}
@ -427,7 +427,7 @@ NpTransceive(IN PDEVICE_OBJECT DeviceObject,
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
Status = _SEH2_GetExceptionCode();
goto Quickie;
_SEH2_YIELD(goto Quickie);
}
_SEH2_END;
}

View file

@ -97,7 +97,7 @@ NpWriteDataQueue(IN PNP_DATA_QUEUE WriteQueue,
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
if (AllocatedBuffer) ExFreePool(Buffer);
return _SEH2_GetExceptionCode();
_SEH2_YIELD(return _SEH2_GetExceptionCode());
}
_SEH2_END;