-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Invalid cyclical TypeSpec in referenced assembly causes stack overflow #7971
Comments
/cc @jaredpar |
Adding a test to Roslyn. |
Closing as #8027 addressed this. |
@jaredpar As far as I can tell, a skipped test was added, but the issue was not resolved. Another related bug was fixed, but I think this one is still unresolved. |
@tmat can you comment here? The PR claims to address the bug, does change some product code but does add two tests: one skipped and one active. I only saw the non-skipped parts when I was looking at this bug yesterday. |
Reopening; the PR quoted as fixing this actually just added a (skipped) test for it. I'm not saying I know for sure the problem still exists, but I don't have any evidence that it has been fixed, so I'm reopening this for investigation and possible fixing. |
I am not aware of any fix we made to address this. |
The compilers have not been hardened against broken metadata. This should be fixed in the context of a (hypothetical) effort to harden the compilers against different kinds of broken metadata. |
Although the EMCA-335 CLI specification does not permit
TypeSpec
tokens as modifiers, they are allowed in practice by ilasm, peverify, the CLR, and Roslyn. However, they open up the possibility of circular signatures, and the compiler hits a stack overflow while trying to decode one.I have started to document such spec issues in dotnet/corefx#5435 and I'm now filing the bugs I found while experimenting to write that up.
Native csc.exe had the same problem.
Repro steps
Expected result
Actual result
cc @tmat @gafter @AlekseyTs
The text was updated successfully, but these errors were encountered: