diff --git a/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs b/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs index 8a8945f5dc515c..8cd613b8c81ded 100644 --- a/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs +++ b/src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs @@ -783,9 +783,13 @@ internal static unsafe int AcceptSecurityContext( outSecBuffer.size = outUnmanagedBuffer[index].cbBuffer; outSecBuffer.type = outUnmanagedBuffer[index].BufferType; - outSecBuffer.token = outSecBuffer.size > 0 ? - new Span((byte*)outUnmanagedBuffer[index].pvBuffer, outUnmanagedBuffer[0].cbBuffer).ToArray() : - null; + + if (isSspiAllocated) + { + outSecBuffer.token = outSecBuffer.size > 0 ? + new Span((byte*)outUnmanagedBuffer[index].pvBuffer, outUnmanagedBuffer[0].cbBuffer).ToArray() : + null; + } if (inSecBuffers.Count > 1 && inUnmanagedBuffer[1].BufferType == SecurityBufferType.SECBUFFER_EXTRA && inSecBuffers._item1.Type == SecurityBufferType.SECBUFFER_EMPTY) {