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
is not a user supplied comparer, and the call to T.Equals() throws, we don't catch the exception and convert into a UserFunctionException. This can cause a generator to bring the hosting process down. We should always wrap default comparers in a user wrapped user comparer to ensure we still do the translation.
chsienki
changed the title
NodeStateTable.GetModifiedItemAndState does not guard against a throwing comparer.
NodeStateTable.GetModifiedItemAndState does not guard against a throwing .Equals method
Jan 16, 2025
When the comparer used here:
roslyn/src/Compilers/Core/Portable/SourceGeneration/Nodes/NodeStateTable.cs
Lines 557 to 564 in 9db0f39
is not a user supplied comparer, and the call to
T.Equals()
throws, we don't catch the exception and convert into aUserFunctionException
. This can cause a generator to bring the hosting process down. We should always wrap default comparers in a user wrapped user comparer to ensure we still do the translation.See here for an example: microsoft/CsWinRT#1897
The text was updated successfully, but these errors were encountered: