Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Runtime] ARM64 trampolines crashed with the fstack-protector-strong flag enabled. #7564

Closed
mandel-macaque opened this issue Dec 10, 2019 · 1 comment · Fixed by #7571
Closed
Assignees
Labels
enhancement The issue or pull request is an enhancement
Milestone

Comments

@mandel-macaque
Copy link
Member

The trampolines crash as stated in https://github.com/xamarin/maccore/issues/2072

Looks like the code of the trampolines is stepping on the canary added by the compiler making the tests to crash. PR #7529 removes the flag, so that master is in a release state. But we need to debug which of the calls is writing on the canary and make sure it does the correct thing and does not step over the canary that is found at the end of it.

@mandel-macaque mandel-macaque added the enhancement The issue or pull request is an enhancement label Dec 10, 2019
@mandel-macaque mandel-macaque added this to the Future milestone Dec 10, 2019
@mandel-macaque mandel-macaque self-assigned this Dec 10, 2019
@mandel-macaque
Copy link
Member Author

mandel-macaque commented Dec 10, 2019

The crash occurs when the marshal method gets the following input:

monotouchtestmarshal_return_value(context=0x000000016f857570, type="{Sddddd=ddddd}", size=40, vvalue=0x00000001071c8828, mtype=0x000000014633dbd8, retain=false, method=0x00000001464e1de8, desc=0x00000002805669a0, exception_gchandle=0x000000016f85750c) at trampolines-arm64.m:0`

The trampoline invocation is:

monotouchtest::xamarin_invoke_trampoline(type=Tramp_Default, self=0x000000028026c010, sel="Test_dddddStruct", iterator=(monotouchtestparam_iter_next(IteratorAction, void*, char const*, unsigned long, void*, unsigned int*) at trampolines-arm64.m:140), marshal_return_value=(monotouchtestmarshal_return_value(void*, char const*, unsigned long, void*, _MonoType*, bool, _MonoMethod*, MethodDescription*, unsigned int*)`

rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Dec 11, 2019
monojenkins pushed a commit to monojenkins/xamarin-macios that referenced this issue Dec 12, 2019
monojenkins pushed a commit to monojenkins/xamarin-macios that referenced this issue Dec 12, 2019
monojenkins pushed a commit to monojenkins/xamarin-macios that referenced this issue Dec 12, 2019
@ghost ghost locked as resolved and limited conversation to collaborators May 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement The issue or pull request is an enhancement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant