Jacek Caban : msxml3: Correctly handle VT_NULL in IXMLHTTPRequest::send.
Alexandre Julliard
julliard at winehq.org
Fri May 10 11:17:57 CDT 2013
Module: wine
Branch: master
Commit: 2dd4e497d6046252f6641b9670f06d9795be33cd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2dd4e497d6046252f6641b9670f06d9795be33cd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri May 10 14:21:41 2013 +0200
msxml3: Correctly handle VT_NULL in IXMLHTTPRequest::send.
---
dlls/msxml3/httprequest.c | 28 ++++++++++++++++------------
1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index 682381d..e2ede0e 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -736,26 +736,30 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
/* fall through */
case VT_EMPTY:
case VT_ERROR:
+ case VT_NULL:
ptr = NULL;
size = 0;
break;
}
- bsc->body = GlobalAlloc(GMEM_FIXED, size);
- if (!bsc->body)
+ if (size)
{
- if (V_VT(body) == VT_BSTR)
- heap_free(ptr);
- else if (V_VT(body) == (VT_ARRAY|VT_UI1))
- SafeArrayUnaccessData(sa);
+ bsc->body = GlobalAlloc(GMEM_FIXED, size);
+ if (!bsc->body)
+ {
+ if (V_VT(body) == VT_BSTR)
+ heap_free(ptr);
+ else if (V_VT(body) == (VT_ARRAY|VT_UI1))
+ SafeArrayUnaccessData(sa);
- heap_free(bsc);
- return E_OUTOFMEMORY;
- }
+ heap_free(bsc);
+ return E_OUTOFMEMORY;
+ }
- send_data = GlobalLock(bsc->body);
- memcpy(send_data, ptr, size);
- GlobalUnlock(bsc->body);
+ send_data = GlobalLock(bsc->body);
+ memcpy(send_data, ptr, size);
+ GlobalUnlock(bsc->body);
+ }
if (V_VT(body) == VT_BSTR)
heap_free(ptr);
More information about the wine-cvs
mailing list