James Hawkins : msi: Don't publish the product to an invalid location.

Alexandre Julliard julliard at winehq.org
Tue Jun 24 06:45:44 CDT 2008


Module: wine
Branch: master
Commit: d809b4e2d95b1ebfbf7d673a3c656e6484a96ef9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d809b4e2d95b1ebfbf7d673a3c656e6484a96ef9

Author: James Hawkins <jhawkins at codeweavers.com>
Date:   Mon Jun 23 22:59:03 2008 -0500

msi: Don't publish the product to an invalid location.

---

 dlls/msi/action.c           |    6 ------
 dlls/msi/tests/automation.c |   11 +++++++----
 dlls/msi/tests/install.c    |    6 ++++++
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index fb8cfed..8f1920d 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -3411,7 +3411,6 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
 {
     UINT rc;
     LPWSTR packname;
-    HKEY hkey=0;
     HKEY hukey=0;
     HKEY hudkey=0;
     HKEY source;
@@ -3442,10 +3441,6 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
     }
     else
     {
-        rc = MSIREG_OpenProductsKey(package->ProductCode,&hkey,TRUE);
-        if (rc != ERROR_SUCCESS)
-            goto end;
-
         rc = MSIREG_OpenUserProductsKey(package->ProductCode,&hukey,TRUE);
         if (rc != ERROR_SUCCESS)
             goto end;
@@ -3533,7 +3528,6 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package)
     rc = msi_publish_icons(package);
 
 end:
-    RegCloseKey(hkey);
     RegCloseKey(hukey);
     RegCloseKey(hudkey);
 
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index 2b0ada1..ec54065 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -2009,9 +2009,12 @@ static void test_Installer_Products(BOOL bProductInstalled)
             }
         }
 
-        ok(bProductInstalled == bProductFound, "Product expected to %s installed but product code was %s\n",
-           bProductInstalled ? "be" : "not be",
-           bProductFound ? "found" : "not found");
+        if (bProductInstalled) todo_wine
+        {
+            ok(bProductInstalled == bProductFound, "Product expected to %s installed but product code was %s\n",
+               bProductInstalled ? "be" : "not be",
+               bProductFound ? "found" : "not found");
+        }
 
         if (pEnum)
         {
@@ -2306,7 +2309,7 @@ static void test_Installer_InstallProduct(void)
     RegCloseKey(hkey);
 
     res = RegDeleteKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\Products\\05FA3C1F65B896A40AC00077F34EF203");
-    todo_wine ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_SUCCESS, got %d\n", res);
+    ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
 
     /* Delete installation files we installed */
     delete_test_files();
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index d5ebda2..f1d493b 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -2477,6 +2477,9 @@ static void test_publish_publishproduct(void)
                                      "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
     static const CHAR cuupgrades[] = "Software\\Microsoft\\Installer\\UpgradeCodes"
                                      "\\51AAE0C44620A5E4788506E91F249BD2";
+    static const CHAR badprod[] = "Software\\Microsoft\\Windows\\CurrentVersion"
+                                  "\\Installer\\Products"
+                                  "\\84A88FD7F6998CE40A22FB59F6B9C2BB";
 
     get_user_sid(&usersid);
     if (!usersid)
@@ -2500,6 +2503,9 @@ static void test_publish_publishproduct(void)
     ok(delete_pf("msitest\\maximus", TRUE), "File not installed\n");
     ok(delete_pf("msitest", FALSE), "File not installed\n");
 
+    res = RegOpenKeyA(HKEY_LOCAL_MACHINE, badprod, &hkey);
+    ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %d\n", res);
+
     sprintf(keypath, prodpath, usersid);
     res = RegOpenKeyA(HKEY_LOCAL_MACHINE, keypath, &hkey);
     ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", res);




More information about the wine-cvs mailing list