Fixed work with QUIC_BUFFER (#69351)
authorMarie Píchová <11718369+ManickaP@users.noreply.github.com>
Tue, 17 May 2022 14:17:47 +0000 (16:17 +0200)
committerGitHub <noreply@github.com>
Tue, 17 May 2022 14:17:47 +0000 (16:17 +0200)
src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicConnection.cs

index c2483d6..4a49d8c 100644 (file)
@@ -351,19 +351,19 @@ namespace System.Net.Quic.Implementations.MsQuic
                     {
                         unsafe
                         {
-                            ReadOnlySpan<QUIC_BUFFER> quicBuffer = new ReadOnlySpan<QUIC_BUFFER>((void*)certificateHandle, sizeof(QUIC_BUFFER));
-                            certificate = new X509Certificate2(new ReadOnlySpan<byte>(quicBuffer[0].Buffer, (int)quicBuffer[0].Length));
-                            certificateBuffer = (IntPtr)quicBuffer[0].Buffer;
-                            certificateLength = (int)quicBuffer[0].Length;
+                            QUIC_BUFFER* certBuffer = (QUIC_BUFFER*)certificateHandle;
+                            certificate = new X509Certificate2(new ReadOnlySpan<byte>(certBuffer->Buffer, (int)certBuffer->Length));
+                            certificateBuffer = (IntPtr)certBuffer->Buffer;
+                            certificateLength = (int)certBuffer->Length;
 
                             IntPtr chainHandle = (IntPtr)connectionEvent.PEER_CERTIFICATE_RECEIVED.Chain;
                             if (chainHandle != IntPtr.Zero)
                             {
-                                quicBuffer = new ReadOnlySpan<QUIC_BUFFER>((void*)chainHandle, sizeof(QUIC_BUFFER));
-                                if (quicBuffer[0].Length != 0 && quicBuffer[0].Buffer != null)
+                                QUIC_BUFFER* chainBuffer = (QUIC_BUFFER*)chainHandle;
+                                if (chainBuffer->Length != 0 && chainBuffer->Buffer != null)
                                 {
                                     additionalCertificates = new X509Certificate2Collection();
-                                    additionalCertificates.Import(new ReadOnlySpan<byte>(quicBuffer[0].Buffer, (int)quicBuffer[0].Length));
+                                    additionalCertificates.Import(new ReadOnlySpan<byte>(chainBuffer->Buffer, (int)chainBuffer->Length));
                                 }
                             }
                         }