Marcus Meissner : wininet: Move freeing netconn into create_netconn_socket (Coverity).

Alexandre Julliard julliard at winehq.org
Thu Nov 15 15:26:32 CST 2012


Module: wine
Branch: master
Commit: 02a80554f833a86851bccd80b0ca21246d4cba05
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=02a80554f833a86851bccd80b0ca21246d4cba05

Author: Marcus Meissner <marcus at jet.franken.de>
Date:   Wed Nov 14 19:59:31 2012 +0100

wininet: Move freeing netconn into create_netconn_socket (Coverity).

---

 dlls/wininet/netconnection.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index b746b54..2abb676 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -655,7 +655,6 @@ static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD t
                 if (!res)
                 {
                     closesocket(netconn->socketFD);
-                    heap_free(netconn);
                     return ERROR_INTERNET_CANNOT_CONNECT;
                 }
                 else if (res > 0)
@@ -674,10 +673,8 @@ static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD t
             ioctlsocket(netconn->socketFD, FIONBIO, &flag);
         }
     }
-    if(result == -1) {
-        heap_free(netconn);
+    if(result == -1)
         return sock_get_error(errno);
-    }
 
 #ifdef TCP_NODELAY
     flag = 1;
@@ -717,9 +714,13 @@ DWORD create_netconn(BOOL useSSL, server_t *server, DWORD security_flags, BOOL m
     list_init(&netconn->pool_entry);
 
     result = create_netconn_socket(server, netconn, timeout);
+    if (result != ERROR_SUCCESS) {
+        heap_free(netconn);
+        return result;
+    }
+
     server_addref(server);
     netconn->server = server;
-
     *ret = netconn;
     return result;
 }




More information about the wine-cvs mailing list