From 60ea145e864a6bc62af97e7bfcecf78b6f82532c Mon Sep 17 00:00:00 2001 From: antiduh Date: Sat, 28 Jun 2014 16:46:21 +0000 Subject: [PATCH] Increase the reliability of QueryCredentialsAttribute_Name usage by wrapping a try-finally around the allocation that happens inside the CER. --- NSspi/Credentials/Credential.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/NSspi/Credentials/Credential.cs b/NSspi/Credentials/Credential.cs index 505ffab..95371e4 100644 --- a/NSspi/Credentials/Credential.cs +++ b/NSspi/Credentials/Credential.cs @@ -156,8 +156,14 @@ namespace NSspi.Credentials if( status == SecurityStatus.OK && carrier.Name != IntPtr.Zero ) { - name = Marshal.PtrToStringUni( carrier.Name ); - NativeMethods.FreeContextBuffer( carrier.Name ); + try + { + name = Marshal.PtrToStringUni( carrier.Name ); + } + finally + { + NativeMethods.FreeContextBuffer( carrier.Name ); + } } } }