Module: wine Branch: master Commit: 126c0abeefb05af8137abdcc7c9271848bfaf5fa URL: http://source.winehq.org/git/wine.git/?a=commit;h=126c0abeefb05af8137abdcc7c...
Author: Piotr Caban piotr.caban@gmail.com Date: Wed Aug 20 18:32:02 2008 +0200
msxml3: Add error handling when reading from IStream.
---
dlls/msxml3/saxreader.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index 7affb4a..2e35eaa 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -1876,8 +1876,20 @@ static HRESULT WINAPI internal_parse( if(hr == E_PENDING) continue; break; } + if(hr != S_OK) + { + IStream_Release(stream); + break; + } + data = HeapAlloc(GetProcessHeap(), 0, dataInfo.cbSize.QuadPart); + if(!data) + { + IStream_Release(stream); + break; + } + while(1) { hr = IStream_Read(stream, data, @@ -1885,6 +1897,13 @@ static HRESULT WINAPI internal_parse( if(hr == E_PENDING) continue; break; } + if(hr != S_OK) + { + HeapFree(GetProcessHeap(), 0, data); + IStream_Release(stream); + break; + } + hr = internal_parseBuffer(This, data, dataInfo.cbSize.QuadPart, vbInterface); HeapFree(GetProcessHeap(), 0, data);