James Hawkins : msi: Validate the szProduct parameter of MsiSourceListSetInfo.

Alexandre Julliard julliard at winehq.org
Tue Feb 19 08:05:17 CST 2008


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

Author: James Hawkins <jhawkins at codeweavers.com>
Date:   Tue Feb 19 02:08:11 2008 -0600

msi: Validate the szProduct parameter of MsiSourceListSetInfo.

---

 dlls/msi/source.c       |    3 ++-
 dlls/msi/tests/source.c |   22 ++++++----------------
 2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/dlls/msi/source.c b/dlls/msi/source.c
index 03b8b61..887c702 100644
--- a/dlls/msi/source.c
+++ b/dlls/msi/source.c
@@ -394,13 +394,14 @@ UINT WINAPI MsiSourceListSetInfoW( LPCWSTR szProduct, LPCWSTR szUserSid,
                                    MSIINSTALLCONTEXT dwContext, DWORD dwOptions,
                                    LPCWSTR szProperty, LPCWSTR szValue)
 {
+    WCHAR squished_pc[GUID_SIZE];
     HKEY sourcekey;
     UINT rc;
 
     TRACE("%s %s %x %x %s %s\n", debugstr_w(szProduct), debugstr_w(szUserSid),
             dwContext, dwOptions, debugstr_w(szProperty), debugstr_w(szValue));
 
-    if (!szProduct || lstrlenW(szProduct) > 39)
+    if (!szProduct || !squash_guid(szProduct, squished_pc))
         return ERROR_INVALID_PARAMETER;
 
     if (!szProperty)
diff --git a/dlls/msi/tests/source.c b/dlls/msi/tests/source.c
index 8028de3..90d4b0c 100644
--- a/dlls/msi/tests/source.c
+++ b/dlls/msi/tests/source.c
@@ -1398,7 +1398,6 @@ static void test_MsiSourceListSetInfo(void)
     LONG res;
     UINT r;
 
-
     create_test_guid(prodcode, prod_squashed);
     get_user_sid(&usersid);
 
@@ -1415,33 +1414,24 @@ static void test_MsiSourceListSetInfo(void)
     r = MsiSourceListSetInfoA("", usersid, MSIINSTALLCONTEXT_USERUNMANAGED,
                               MSICODE_PRODUCT | MSISOURCETYPE_NETWORK,
                               INSTALLPROPERTY_MEDIAPACKAGEPATH, "path");
-    todo_wine
-    {
-        ok(r == ERROR_INVALID_PARAMETER,
-           "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
-    }
+    ok(r == ERROR_INVALID_PARAMETER,
+       "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
 
     /* garbage szProductCodeOrPatchCode */
     r = MsiSourceListSetInfoA("garbage", usersid,
                               MSIINSTALLCONTEXT_USERUNMANAGED,
                               MSICODE_PRODUCT | MSISOURCETYPE_NETWORK,
                               INSTALLPROPERTY_MEDIAPACKAGEPATH, "path");
-    todo_wine
-    {
-        ok(r == ERROR_INVALID_PARAMETER,
-           "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
-    }
+    ok(r == ERROR_INVALID_PARAMETER,
+       "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
 
     /* guid without brackets */
     r = MsiSourceListSetInfoA("51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA",
                               usersid, MSIINSTALLCONTEXT_USERUNMANAGED,
                               MSICODE_PRODUCT | MSISOURCETYPE_NETWORK,
                               INSTALLPROPERTY_MEDIAPACKAGEPATH, "path");
-    todo_wine
-    {
-        ok(r == ERROR_INVALID_PARAMETER,
-           "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
-    }
+    ok(r == ERROR_INVALID_PARAMETER,
+       "Expected ERROR_INVALID_PARAMETER, got %d\n", r);
 
     /* guid with brackets */
     r = MsiSourceListSetInfoA("{51CD2AD5-0482-4C46-8DDD-0ED1022AA1AA}",




More information about the wine-cvs mailing list