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
{{ message }}
Repository navigation
Crash caused by corrupted stack in System.Net.Quic tests #62613
The crash is caused by stack corrupted around the call to ConfigurationLoadCredentialDelegate.
There is one obvious interop problem in mismatched definition of CredentialConfig structure. The unmanaged version of this structure has AllowedCipherSuites field that is missing in the managed definition. This problem alone cannot explain the crash, there are likely more similar interop issues, potentially in interop calls done that happened earlier.
thanks for looking into it @jkotas. AFAIK the AllowedCipherSuites was added later AFAIK e.g. after the initial code was written and failed to notice the difference. There was debate that the low-level binding would move to msquic it self but that did not happened (yet?)
The AllowedCipherSuites field is only read if QUIC_CREDENTIAL_FLAG_SET_ALLOWED_CIPHER_SUITES is passed as one of the flags. And it doesn't seem like that is happening from the .NET side, so I suspect its unrelated.
Yes, I agree that the crash is unrelated to the mismatched definition of CredentialConfig. It seems to be regression in the runtime introduced by recent change (#62271)
Activity
jkotas commentedon Dec 10, 2021
The crash is caused by stack corrupted around the call to
ConfigurationLoadCredentialDelegate.There is one obvious interop problem in mismatched definition of
CredentialConfigstructure. The unmanaged version of this structure hasAllowedCipherSuitesfield that is missing in the managed definition. This problem alone cannot explain the crash, there are likely more similar interop issues, potentially in interop calls done that happened earlier.wfurt commentedon Dec 10, 2021
thanks for looking into it @jkotas. AFAIK the
AllowedCipherSuiteswas added later AFAIK e.g. after the initial code was written and failed to notice the difference. There was debate that the low-level binding would move to msquic it self but that did not happened (yet?)cc: @nibanks @ThadHouse
thhous-msft commentedon Dec 10, 2021
The AllowedCipherSuites field is only read if QUIC_CREDENTIAL_FLAG_SET_ALLOWED_CIPHER_SUITES is passed as one of the flags. And it doesn't seem like that is happening from the .NET side, so I suspect its unrelated.
jkotas commentedon Dec 10, 2021
Yes, I agree that the crash is unrelated to the mismatched definition of
CredentialConfig. It seems to be regression in the runtime introduced by recent change (#62271)Mark forward delegate stubs as not having hidden arguments