msi: Don't try to register a class if a COM server file is not provided

James Hawkins truiken at gmail.com
Mon Sep 11 18:40:21 CDT 2006


Hi,

The newest version of the MediaShout installer does not provide a file
key for a few of the classes in the Class table, and we crash without
this fix.

Changelog:
* Don't try to register a class if a COM server file is not provided.

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

-- 
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c
index 9d9d7b2..cc9c86b 100644
--- a/dlls/msi/classes.c
+++ b/dlls/msi/classes.c
@@ -844,6 +844,11 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE
 
         RegCreateKeyW( hkey2, cls->Context, &hkey3 );
         file = get_loaded_file( package, comp->KeyPath );
+        if (!file)
+        {
+            TRACE("COM server not provided, skipping class %s\n", debugstr_w(cls->clsid));
+            continue;
+        }
 
         /*
          * FIXME: Implement install on demand (advertised components).
-- 
1.3.0


More information about the wine-patches mailing list