Module: wine Branch: master Commit: 02a80554f833a86851bccd80b0ca21246d4cba05 URL: http://source.winehq.org/git/wine.git/?a=commit;h=02a80554f833a86851bccd80b0...
Author: Marcus Meissner marcus@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; }