Jacek Caban : wininet: Don't free gzip_stream in HTTPREQ_CloseConnection.
Alexandre Julliard
julliard at winehq.org
Mon Aug 24 10:08:08 CDT 2009
Module: wine
Branch: master
Commit: 4dfec39b6f1dfc4dc430cc79cf47d2e908c58ba3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4dfec39b6f1dfc4dc430cc79cf47d2e908c58ba3
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sat Aug 22 19:46:30 2009 +0200
wininet: Don't free gzip_stream in HTTPREQ_CloseConnection.
---
dlls/wininet/http.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 7e6178c..681658e 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -1545,6 +1545,14 @@ static void HTTPREQ_Destroy(object_header_t *hdr)
HeapFree(GetProcessHeap(), 0, lpwhr->pCustHeaders[i].lpszValue);
}
+#ifdef HAVE_ZLIB
+ if(lpwhr->gzip_stream) {
+ if(!lpwhr->gzip_stream->end_of_data)
+ inflateEnd(&lpwhr->gzip_stream->zstream);
+ HeapFree(GetProcessHeap(), 0, lpwhr->gzip_stream);
+ }
+#endif
+
HeapFree(GetProcessHeap(), 0, lpwhr->pCustHeaders);
HeapFree(GetProcessHeap(), 0, lpwhr);
}
@@ -1555,14 +1563,6 @@ static void HTTPREQ_CloseConnection(object_header_t *hdr)
TRACE("%p\n",lpwhr);
-#ifdef HAVE_ZLIB
- if(lpwhr->gzip_stream) {
- inflateEnd(&lpwhr->gzip_stream->zstream);
- HeapFree(GetProcessHeap(), 0, lpwhr->gzip_stream);
- lpwhr->gzip_stream = NULL;
- }
-#endif
-
if (!NETCON_connected(&lpwhr->netConnection))
return;
@@ -2057,6 +2057,7 @@ static DWORD read_gzip_data(http_request_t *req, BYTE *buf, int size, BOOL sync,
if(zres == Z_STREAM_END) {
TRACE("end of data\n");
req->gzip_stream->end_of_data = TRUE;
+ inflateEnd(&req->gzip_stream->zstream);
}else if(zres != Z_OK) {
WARN("inflate failed %d\n", zres);
if(!read)
More information about the wine-cvs
mailing list