[PATCH 2/2, try3] wininet: Fix reference count on internet handle for asynchronous InternetReadFileEx call.

Misha Koshelev mk144210 at bcm.edu
Wed Aug 22 00:12:52 CDT 2007

No changes since sent out in try1.

Without this call to WININET_Release corresponding to the WININET_GetObject at the beginning of
the InternetReadFileEx function is never matched if INTERNET_AsyncCall returns TRUE, and both
this call and the call to WININET_Add right above the top line seen in the diff is never match
if INTERNET_AsyncCall returns FALSE. This means the WININET structure is never properly destroyed,
resulting in a memory leak in any program that uses asynchronous InternetReadFileEx.

This uncovers an existing bug about when the connection is closed (see InternetReadFile_test where
this is already present), and thus necessitates an extra SET_WINE_ALLOW followed by
CHECK_NOT_NOTIFIED with/without todo's.
 dlls/wininet/internet.c   |   11 ++++++-----
 dlls/wininet/tests/http.c |   12 ++++++++++++
 2 files changed, 18 insertions(+), 5 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: e67ab2ad35426f9929d55345fcb7d19322cdb5a3.diff
Type: text/x-patch
Size: 2293 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20070822/00f51ca6/e67ab2ad35426f9929d55345fcb7d19322cdb5a3.bin

More information about the wine-patches mailing list