From 6a9c327fa790cbc89bd65441fd6bc9284fb70747 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Thu, 14 Jul 2022 10:08:30 +0200 Subject: [PATCH] Fix incorrect buffer reallocation in AcceptSecurityContext --- .../src/Interop/Windows/SspiCli/SecuritySafeHandles.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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) {