[PATCH] msi: Fix memory leak (found by Smatch)

Rico Schüller kgbricola at web.de
Sun Dec 30 18:34:00 CST 2007


---
 dlls/msi/source.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/source.c b/dlls/msi/source.c
index 68f94b5..62861d9 100644
--- a/dlls/msi/source.c
+++ b/dlls/msi/source.c
@@ -605,7 +605,10 @@ static UINT fill_source_list(struct list *sourcelist, HKEY sourcekey, DWORD *cou
 
         entry->path = msi_alloc(val_size);
         if (!entry->path)
+        {
+            msi_free(entry);
             goto error;
+        }
 
         lstrcpyW(entry->szIndex, name);
         entry->index = atoiW(name);
@@ -614,7 +617,11 @@ static UINT fill_source_list(struct list *sourcelist, HKEY sourcekey, DWORD *cou
         r = RegEnumValueW(sourcekey, index, name, &size, NULL,
                           NULL, (LPBYTE)entry->path, &val_size);
         if (r != ERROR_SUCCESS)
+        {
+            msi_free(entry->path);
+            msi_free(entry);
             goto error;
+        }
 
         index = ++(*count);
         add_source_to_list(sourcelist, entry);
-- 
1.5.3.3


--------------080103030105070102050002--



More information about the wine-devel mailing list