itss: Reorder some code to avoid leaking memory on an error path.

Michael Stefaniuc mstefani at redhat.de
Tue Feb 9 16:01:26 CST 2010


Found by Smatch.
---
 dlls/itss/storage.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/itss/storage.c b/dlls/itss/storage.c
index fa92c4f..79c863a 100644
--- a/dlls/itss/storage.c
+++ b/dlls/itss/storage.c
@@ -399,6 +399,10 @@ static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage(
     TRACE("%p %s %p %u %p %u %p\n", This, debugstr_w(pwcsName),
           pstgPriority, grfMode, snbExclude, reserved, ppstg);
 
+    chmfile = chm_dup( This->chmfile );
+    if( !chmfile )
+        return E_FAIL;
+
     len = strlenW( This->dir ) + strlenW( pwcsName ) + 1;
     path = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) );
     strcpyW( path, This->dir );
@@ -423,9 +427,6 @@ static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage(
 
     TRACE("Resolving %s\n", debugstr_w(path));
 
-    chmfile = chm_dup( This->chmfile );
-    if( !chmfile )
-        return E_FAIL;
     return ITSS_create_chm_storage(chmfile, path, ppstg);
 }
 
-- 
1.6.6.1



More information about the wine-patches mailing list