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
In some situations when the XRay tracing system has been turned off in the middle of the execution of any one of __xray_Function{Entry,Exit,TailExit} and __xray_ArgLoggerEntry and the handlers have been un-installed, we could be left in an unaligned stack state.
In other cases, we might have a handler that doesn't leave the stack aligned in a specific state after returning, and could be in a situation where the stack is unaligned after the instrumentation is turned off.
We should fix the trampolines to adhere to the Linux x86_64 ABI and align the stack to 16-byte addresses always before calling a function, and re-aligning the stack before restoring the state of the registers and returning. In particular, we already do this correctly for the __xray_CustomEvent trampoline, we just need to port the same implementation across the other trampolines.
The text was updated successfully, but these errors were encountered:
Extended Description
In some situations when the XRay tracing system has been turned off in the middle of the execution of any one of __xray_Function{Entry,Exit,TailExit} and __xray_ArgLoggerEntry and the handlers have been un-installed, we could be left in an unaligned stack state.
In other cases, we might have a handler that doesn't leave the stack aligned in a specific state after returning, and could be in a situation where the stack is unaligned after the instrumentation is turned off.
We should fix the trampolines to adhere to the Linux x86_64 ABI and align the stack to 16-byte addresses always before calling a function, and re-aligning the stack before restoring the state of the registers and returning. In particular, we already do this correctly for the __xray_CustomEvent trampoline, we just need to port the same implementation across the other trampolines.
The text was updated successfully, but these errors were encountered: