-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Arm64: [PAC-RET] Add Pointer Authentication support for Arm64 #125436
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
Open
SwapnilGaikwad
wants to merge
116
commits into
dotnet:main
Choose a base branch
from
SwapnilGaikwad:github-add-pac
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
116 commits
Select commit
Hold shift + click to select a range
7dfa35d
Arm64: [PAC-RET] Add Pointer Authentication support for Arm64
SwapnilGaikwad 8551ad0
Merge main
SwapnilGaikwad 584a268
Fix build failures
SwapnilGaikwad 8216472
Merge main
SwapnilGaikwad 74a5293
Fix build errors
SwapnilGaikwad c9c43c9
Limit thread context changes to Arm64
SwapnilGaikwad 5d6058c
Merge main
SwapnilGaikwad ce5d79b
Fix build issues on x86
SwapnilGaikwad 8db6f6d
Merge main
SwapnilGaikwad 872443e
Merge branch 'main' into github-add-pac
SwapnilGaikwad 3591b2a
Merge main
SwapnilGaikwad 867e149
Limit framelayout changes to JIT
SwapnilGaikwad f00f789
Fix formatting
SwapnilGaikwad 9616e73
Merge main
SwapnilGaikwad 4582f73
Add MethodAssociatedData containing hijackinfo for NativeAOT
SwapnilGaikwad d1e65cb
Merge main
SwapnilGaikwad e1cfd90
Use unwind info to determine value of SP at the time of signing using…
SwapnilGaikwad cfe6ab8
Fix windows build
SwapnilGaikwad bed17cd
Merge main
SwapnilGaikwad cefcd3f
Fix register addressing in asmhelpers
SwapnilGaikwad f93804f
Merge main
SwapnilGaikwad 280870c
Refactor out IsPacPresent to avoid parsing unwind info multiple times
SwapnilGaikwad 5cc10be
Merge main
SwapnilGaikwad f186f19
Bail out of RAH instead of hijacking calling frame
SwapnilGaikwad 941d9e2
Remove left-over changes from MethodAssociated Data approach
SwapnilGaikwad 8f9645b
Merge main
SwapnilGaikwad a755fba
Fallback to DWARF for PAC unwind codes on macos
SwapnilGaikwad 5bde929
Merge main
SwapnilGaikwad 352b3fd
Used stripped the return address while creating a frame OnHijackWorker
SwapnilGaikwad 264f1fe
Remove redundant lef-over changes
SwapnilGaikwad f455dc1
Mark PacStrip Arm64 only
SwapnilGaikwad d5a4abb
Merge main
SwapnilGaikwad a02fac8
Temporarily Revert "JIT: Restore arm64, LA64 and RISCV64 OSR callee s…
SwapnilGaikwad 0d2d0dd
Restore changes from "JIT: Restore arm64, LA64 and RISCV64 OSR callee…
SwapnilGaikwad f5b520a
Merge main
SwapnilGaikwad 396c868
Strip return address for correct signing in prolog of Tier0 OSR
SwapnilGaikwad f7d4548
Avoid stripping while restoring Tier0 registers for OSR
SwapnilGaikwad 3ca8d39
Merge main
SwapnilGaikwad e98099e
Merge main
SwapnilGaikwad a1768bd
Keep encrypted LR saved in a slot while creating hijack frame
SwapnilGaikwad 1827095
Remove todo from libunwind to use strip instead of auth
SwapnilGaikwad b43e5e7
Use auth instead of strip in windows unwinder
SwapnilGaikwad 52ca210
Merge main
SwapnilGaikwad e5d5ca3
Keep signed return address for the hijackframe and authenticate it on…
SwapnilGaikwad 037a0a4
Merge main
SwapnilGaikwad 1e4ae0a
Merge main
SwapnilGaikwad 067c38f
Fix build issues on macos
SwapnilGaikwad fcbcdf5
Merge main
SwapnilGaikwad e1a3695
Handle phantom unwind codes correctly
SwapnilGaikwad d288cea
Merge main
SwapnilGaikwad 146da5e
Address review comments
SwapnilGaikwad ebad545
Use xpaci instead xpaclri for stripping
SwapnilGaikwad 89a9ded
Incorporate review comment
SwapnilGaikwad 650ef08
Merge main
SwapnilGaikwad 80ed0b4
Merge main
SwapnilGaikwad e17d8e9
Refactor GetPacSignInfo
SwapnilGaikwad 22dccb7
Don't assume sp offset to be zero for PAC signing
SwapnilGaikwad 21bc75a
Canonicalize return addresses in StackFrameIterator for NativeAOT
SwapnilGaikwad cd162df
Merge main
SwapnilGaikwad 493eff7
Track SP offset for PAC instruction separately while calculating hija…
SwapnilGaikwad 84741a8
Merge main
SwapnilGaikwad bcbc1c1
Use B key on Windows and A key otherwise for PAC
SwapnilGaikwad dfac51c
Merge main
SwapnilGaikwad 24d44ea
Fix formatting
SwapnilGaikwad 12ca90d
Merge main
SwapnilGaikwad 7df0c1f
Address review comments
SwapnilGaikwad 0b6b5a2
Merge main
SwapnilGaikwad e9be308
Track PAC CFA offset while unwinding for NativeAOT
SwapnilGaikwad ddccab0
Match finding SP for PAC signing on Windows NativeAOT with the JIT
SwapnilGaikwad ff1f08e
Fix build errors
SwapnilGaikwad 3a6ad11
Merge main
SwapnilGaikwad e71d980
Merge main
SwapnilGaikwad a07d3bd
Merge main
SwapnilGaikwad af97173
Remove redundant changes
SwapnilGaikwad f153e2b
Merge main
SwapnilGaikwad c40c08c
Make JitPacEnabled config variable Arm64 only
SwapnilGaikwad 27f8c9b
Merge main
SwapnilGaikwad a6b6641
Restore clearing THUMB_CODE on arm32
SwapnilGaikwad f5b5954
Merge main and JIT changes
SwapnilGaikwad b6fa62e
Merge main
SwapnilGaikwad 401b496
Use PAL unwinder for UNIX to retrieve signing SP for PAC
SwapnilGaikwad d21c942
Merge main
SwapnilGaikwad 9a2a161
Restore missing THUMB_CODE clearing on Arm32
SwapnilGaikwad 82b962d
Merge main
SwapnilGaikwad f4c7ec1
Switch to use PAL unwinder for Windows to retrieve signing SP for PAC
SwapnilGaikwad 82a8ec4
Try fixing build failures on Windows
SwapnilGaikwad 64c7367
Merge main
SwapnilGaikwad a24b0b7
Merge main
SwapnilGaikwad b5bd6c2
Merge main
SwapnilGaikwad e44b17a
Update JIT GUID temporarilty to enable SPMI tests
SwapnilGaikwad 0645777
Merge main
SwapnilGaikwad 3ef9668
Address review comments
SwapnilGaikwad 6bdc21f
Merge main
SwapnilGaikwad a66dd10
Pass signing sp for managed frame to hijack frame
SwapnilGaikwad 4113f04
Merge main
SwapnilGaikwad d539d9d
Strip return address in cdac unwinder
SwapnilGaikwad 88b9eb2
Handle RTL_VIRTUAL_UNWIND2_VALIDATE_PAC in unwinder
SwapnilGaikwad 363156e
Revert "Handle RTL_VIRTUAL_UNWIND2_VALIDATE_PAC in unwinder"
SwapnilGaikwad 13cf190
Merge main
SwapnilGaikwad d5a1b3c
Use ARM64_ARG macro for Arm64 specific args in HijackFrame
SwapnilGaikwad 3da8014
Merge main
SwapnilGaikwad b3ffd12
Switch to PAL unwinder for NativeAOT on Windows
SwapnilGaikwad 9dfec15
Use auth instead of strip while returning from hijack in NativeAOT
SwapnilGaikwad 0f7379b
Fix build errors on Windows
SwapnilGaikwad 9f20273
Merge main
SwapnilGaikwad b7f5452
Merge main
SwapnilGaikwad 528710b
Fix build errors on Windows
SwapnilGaikwad 782e0d8
Try fixing arm32 and x64 build failures
SwapnilGaikwad ba25589
Merge main
SwapnilGaikwad 3efd414
Try fixing build errors
SwapnilGaikwad 98cbb04
More build fixes
SwapnilGaikwad e41c3ca
Limit changes to NativeAOT declartions to Arm64 only
SwapnilGaikwad 15fe969
Merge main
SwapnilGaikwad 0910b0a
Avoid separate definitions for NativeAOT in daccess.h
SwapnilGaikwad 0e41b35
Avoid adding crosscomp.h for NativeAOT builds to avoid redef warnings…
SwapnilGaikwad dbb330a
Merge main
SwapnilGaikwad File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.