[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) _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{ {
NpFreeClientSecurityContext(ClientContext); NpFreeClientSecurityContext(ClientContext);
return _SEH2_GetExceptionCode(); _SEH2_YIELD(return _SEH2_GetExceptionCode());
} }
_SEH2_END; _SEH2_END;

View file

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

View file

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