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