Nikolay Sivov : msxml3: Clear request headers on Open().
Module: wine Branch: master Commit: f6bfc309ed5fa911c08db41bc30045f3bb693fab URL: http://source.winehq.org/git/wine.git/?a=commit;h=f6bfc309ed5fa911c08db41bc3... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Dec 23 00:43:15 2015 +0300 msxml3: Clear request headers on Open(). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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);
participants (1)
-
Alexandre Julliard