Commit 92dbc57a authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

oleaut32: Fix a stream leak on failure.

parent f3fe497b
...@@ -153,6 +153,7 @@ _unmarshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN *pUnk) { ...@@ -153,6 +153,7 @@ _unmarshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN *pUnk) {
hres = IStream_Write(pStm,buf->base+buf->curoff,xsize,&res); hres = IStream_Write(pStm,buf->base+buf->curoff,xsize,&res);
if (hres) { if (hres) {
ERR("stream write %x\n",hres); ERR("stream write %x\n",hres);
IStream_Release(pStm);
return hres; return hres;
} }
...@@ -160,12 +161,14 @@ _unmarshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN *pUnk) { ...@@ -160,12 +161,14 @@ _unmarshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN *pUnk) {
hres = IStream_Seek(pStm,seekto,SEEK_SET,&newpos); hres = IStream_Seek(pStm,seekto,SEEK_SET,&newpos);
if (hres) { if (hres) {
ERR("Failed Seek %x\n",hres); ERR("Failed Seek %x\n",hres);
IStream_Release(pStm);
return hres; return hres;
} }
hres = CoUnmarshalInterface(pStm,riid,(LPVOID*)pUnk); hres = CoUnmarshalInterface(pStm,riid,(LPVOID*)pUnk);
if (hres) { if (hres) {
ERR("Unmarshalling interface %s failed with %x\n",debugstr_guid(riid),hres); ERR("Unmarshalling interface %s failed with %x\n",debugstr_guid(riid),hres);
IStream_Release(pStm);
return hres; return hres;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment