Module: wine Branch: master Commit: f6bfc309ed5fa911c08db41bc30045f3bb693fab URL: http://source.winehq.org/git/wine.git/?a=commit;h=f6bfc309ed5fa911c08db41bc3...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Dec 23 00:43:15 2015 +0300
msxml3: Clear request headers on Open().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msxml3/httprequest.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c index aab41f7..e0f08ea 100644 --- a/dlls/msxml3/httprequest.c +++ b/dlls/msxml3/httprequest.c @@ -176,6 +176,19 @@ static void free_response_headers(httprequest *This) This->raw_respheaders = NULL; }
+static void free_request_headers(httprequest *This) +{ + struct httpheader *header, *header2; + + LIST_FOR_EACH_ENTRY_SAFE(header, header2, &This->reqheaders, struct httpheader, entry) + { + list_remove(&header->entry); + SysFreeString(header->header); + SysFreeString(header->value); + heap_free(header); + } +} + struct BindStatusCallback { IBindStatusCallback IBindStatusCallback_iface; @@ -888,6 +901,7 @@ static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url, SysFreeString(This->user); SysFreeString(This->password); This->user = This->password = NULL; + free_request_headers(This);
if (!strcmpiW(method, MethodGetW)) { @@ -1273,8 +1287,6 @@ static HRESULT httprequest_put_onreadystatechange(httprequest *This, IDispatch *
static void httprequest_release(httprequest *This) { - struct httpheader *header, *header2; - if (This->site) IUnknown_Release( This->site ); if (This->uri) @@ -1286,15 +1298,8 @@ static void httprequest_release(httprequest *This) SysFreeString(This->user); SysFreeString(This->password);
- /* request headers */ - LIST_FOR_EACH_ENTRY_SAFE(header, header2, &This->reqheaders, struct httpheader, entry) - { - list_remove(&header->entry); - SysFreeString(header->header); - SysFreeString(header->value); - heap_free(header); - } - /* response headers */ + /* cleanup headers lists */ + free_request_headers(This); free_response_headers(This); SysFreeString(This->status_text);