-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Delete IL verifier from the JIT #32648
Comments
Is there still a scenario where it makes sense for peverify to exist as a stand-alone tool? I'm struggling to think of one aside from checking whether your code contains any dangerous constructs, but even then its incomplete. |
Yes, there is. It is tracked by #13827 Note that the RyuJIT IL verifier is not the IL verifier used by PEVerify. RyuJIT IL verifier just gives yes / no answer, without producing the good diagnostic for telling you what is wrong. PEVerify had a completely different implementation of IL verifier. |
Might be some small throughput benefit, so let's keep in 5.0. |
I think it's too late in the product cycle for us to do this. Moving to Future. |
A small contirubtion to dotnet#32648.
A small contirubtion to dotnet#32648.
* Mark some getters as const to avoid build errors. * use `gtGetStructHandle` if `NO_CLASS_HANDLE` means an error. * Add `GetStructHnd` to `LclVarDsc`. A small contirubtion to #32648. * additional asserts
At first glance this kind of feels like a bad idea. Having a verifier at runtime has some very real benefits, particularly in the realm of security. Remember when Java was new and malicious coders started using hand-crafted bytecode exploits to break its security, and they fixed it by adding a runtime verifier? If the IL verifier is removed from the JIT, is there anything to stop that story from replaying itself? |
Sandboxing has not been a supported scenario in .NET for a very, very long time. It's already trivial to break memory safety in countless ways. |
cc @TIHan . |
Will take a look. |
Contributes to dotnet#32648
@SingleAccretion just curious, is there something left from this task? |
Yeah, there is still the task of deleting the separate Edit: and other vestiges like |
Reassigned to @amanasifkhalid. |
I believe #108996 finished this issue off, though feel free to re-open this if I'm wrong. |
IL verifier is no longer needed in the JIT. Delete
tiVerificationNeeded
and all code under it.More context: #32521 (comment)
category:implementation
theme:verification
skill-level:beginner
cost:small
impact:small
The text was updated successfully, but these errors were encountered: