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