You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 19, 2019. It is now read-only.
There is a bug in the current Context::Scope based compartment restoration when a Scope object goes away. Consider 3 compartments, 1, 2, 3.
Function A uses Context::Scope to enter compartment 1.
A calls B.
B uses AutoJSAPI to enter compartment 2.
B calls C.
C uses ContextScope to enter compartment 3.
Currently when C returns, the AutoJSAPI on the stack is invisible to us, so we mistakenly restore the current compartment to 1 instead of 2. Any code running in B before it returns will now be in an incorrect compartment.
The text was updated successfully, but these errors were encountered:
This reverts commit fa48fdf.
This was actually breaking SpiderShim.TryCatchMixedNesting. The
scenario described in #174
was happening in that test.
This commit was violating the contract of the JS_Enter/LeaveCompartment
APIs in that it was breaking the tree order of the calls. If we need
this for some reason, then we need to find an alternative solution.
There is a bug in the current
Context::Scope
based compartment restoration when aScope
object goes away. Consider 3 compartments, 1, 2, 3.Context::Scope
to enter compartment 1.AutoJSAPI
to enter compartment 2.ContextScope
to enter compartment 3.Currently when C returns, the AutoJSAPI on the stack is invisible to us, so we mistakenly restore the current compartment to 1 instead of 2. Any code running in B before it returns will now be in an incorrect compartment.
The text was updated successfully, but these errors were encountered: