"John" == John Lightsey john@nixnuts.net writes:
John> Hi all, I've been playing around with the wininet dll to get a John> windows app I developed running, and I've written a patch that John> fixes the problems with wininet that I've noticed, but it's an John> ugly fix and I'd like to get a little clarification about how heap John> memory is being used in Wine.
John> In dlls/wininet/internet.c InternetOpenUrlA() malloc() is used to John> put together the HTTP host header in hostreq. The pointer is then John> passed to HttpAddRequestHeadersA() which creates a buffer with John> HeapAlloc, copies the contents pointed to by hostreq to it then John> frees the buffer with HeapFree. Control then passes back to John> InternetOpenUrlA which does not call free() on the hostreq John> pointer.
John> So, my question is which is the encouraged way of doing things? John> HeapAlloc and HeapFree or malloc and free? Also, is the fact that John> free() was not called on hostreq a bug, or am I missing something?
John> Please be gentle....I'm a Perl programmer, not a C programmer.
If you require memory where there is even a slight chance you expose it to the application program, use HeapAlloc and friends.