From 8c6ac00820e93e6bc4570a9526d3a951061ca043 Mon Sep 17 00:00:00 2001 From: Rob Shearman Date: Mon, 10 Mar 2008 16:39:40 +0000 Subject: [PATCH] wininet: Don't call DeleteSecurityContext and FreeCredentialsHandle on invalid handles. --- dlls/wininet/http.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 085cab2d0b8..aba4bbad280 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -1341,8 +1341,10 @@ static void HTTPREQ_CloseConnection(WININETHANDLEHEADER *hdr) if (lpwhr->pAuthInfo) { - DeleteSecurityContext(&lpwhr->pAuthInfo->ctx); - FreeCredentialsHandle(&lpwhr->pAuthInfo->cred); + if (SecIsValidHandle(&lpwhr->pAuthInfo->ctx)) + DeleteSecurityContext(&lpwhr->pAuthInfo->ctx); + if (SecIsValidHandle(&lpwhr->pAuthInfo->cred)) + FreeCredentialsHandle(&lpwhr->pAuthInfo->cred); HeapFree(GetProcessHeap(), 0, lpwhr->pAuthInfo->auth_data); HeapFree(GetProcessHeap(), 0, lpwhr->pAuthInfo->scheme); @@ -1351,8 +1353,10 @@ static void HTTPREQ_CloseConnection(WININETHANDLEHEADER *hdr) } if (lpwhr->pProxyAuthInfo) { - DeleteSecurityContext(&lpwhr->pProxyAuthInfo->ctx); - FreeCredentialsHandle(&lpwhr->pProxyAuthInfo->cred); + if (SecIsValidHandle(&lpwhr->pProxyAuthInfo->ctx)) + DeleteSecurityContext(&lpwhr->pProxyAuthInfo->ctx); + if (SecIsValidHandle(&lpwhr->pProxyAuthInfo->cred)) + FreeCredentialsHandle(&lpwhr->pProxyAuthInfo->cred); HeapFree(GetProcessHeap(), 0, lpwhr->pProxyAuthInfo->auth_data); HeapFree(GetProcessHeap(), 0, lpwhr->pProxyAuthInfo->scheme);