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