[PATCH] winhttp: avoid leaking authinfo on error (Coverity)

Marcus Meissner marcus at jet.franken.de
Wed Jul 10 01:39:02 CDT 2013


1020941 Resource leak
---
 dlls/winhttp/request.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 3b91c75..8994245 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -1601,7 +1601,10 @@ static BOOL do_authorization( request_t *request, DWORD target, DWORD scheme_fla
         {
             int len = strlenW( ++p );
             in.cbBuffer = decode_base64( p, len, NULL );
-            if (!(in.pvBuffer = heap_alloc( in.cbBuffer ))) return FALSE;
+            if (!(in.pvBuffer = heap_alloc( in.cbBuffer ))) {
+                destroy_authinfo( authinfo );
+                return FALSE;
+            }
             decode_base64( p, len, in.pvBuffer );
         }
         out.BufferType = SECBUFFER_TOKEN;
@@ -1609,6 +1612,7 @@ static BOOL do_authorization( request_t *request, DWORD target, DWORD scheme_fla
         if (!(out.pvBuffer = heap_alloc( authinfo->max_token )))
         {
             heap_free( in.pvBuffer );
+            destroy_authinfo( authinfo );
             return FALSE;
         }
         out_desc.ulVersion = 0;
-- 
1.7.10.4




More information about the wine-patches mailing list