Added patch to correctly parse double quotes in the msi token values.

This commit is contained in:
Sebastian Lackner 2015-10-03 18:57:24 +02:00
parent 28d60dbd10
commit c7c250e381
5 changed files with 60 additions and 1 deletions

View File

@ -34,12 +34,13 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [18]:**
**Bug fixes and features included in the next upcoming release [19]:**
* Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309))
* Add implementation for msidb commandline tool
* BitBlt and StretchDIBits should be marked as hotpatchable
* Codepage conversion should fail when destination length is < 0
* Correctly parse double quotes in the msi token values
* Do not trust width/height passed to edit control in WM_SIZE message ([Wine Bug #37542](https://bugs.winehq.org/show_bug.cgi?id=37542))
* Do not use GdipAlloc and GdipFree in internal functions ([Wine Bug #32786](https://bugs.winehq.org/show_bug.cgi?id=32786))
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))

1
debian/changelog vendored
View File

@ -30,6 +30,7 @@ wine-staging (1.7.52) UNRELEASED; urgency=low
* Added patch for implementation of mfplat.MFTEnum.
* Added patch to implement ws2_32.InetPtonA/W functions.
* Added patch to fix random crashes of Cygwin/MSYS2 for some compilers.
* Added patch to correctly parse double quotes in the msi token values.
* Removed patch to fix possible memory leak in netprofm init_networks (fixed
upstream).
* Removed patch for stub of dwmapi.DwmUpdateThumbnailProperties (accepted

View File

@ -0,0 +1,40 @@
From e519306a786d2133a1e8e487f8d126419154f929 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Wed, 23 Sep 2015 16:07:18 +0800
Subject: msi: Correctly parse double quotes in the token value.
This fixes an installer that passes to InstallProduct a command line like
PROPERTY1="Installing ""Product name"" version 8.0" PROPERTY2=1 PROPERTY3=1
In this case properties PROPERTY2 and PROPERTY3 were not recognized and that
led to an installation failure when a custom action didn't see them as set.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
---
dlls/msi/action.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 16c633b..f2e8e71 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -245,7 +245,7 @@ static int parse_prop( const WCHAR *str, WCHAR *value, int *quotes )
{
case '"':
state = state_quote;
- if (in_quotes) count--;
+ if (in_quotes && p[1] != '\"') count--;
else count++;
break;
case ' ':
@@ -329,7 +329,7 @@ UINT msi_parse_command_line( MSIPACKAGE *package, LPCWSTR szCommandLine,
ptr2 = strchrW( ptr, '=' );
if (!ptr2) return ERROR_INVALID_COMMAND_LINE;
-
+
len = ptr2 - ptr;
if (!len) return ERROR_INVALID_COMMAND_LINE;
--
2.5.1

View File

@ -0,0 +1 @@
Fixes: Correctly parse double quotes in the msi token values

View File

@ -177,6 +177,7 @@ patch_enable_all ()
enable_mountmgr_DosDevices="$1"
enable_mscoree_CorValidateImage="$1"
enable_mshtml_HTMLLocation_put_hash="$1"
enable_msi_Parse_Double_Quotes="$1"
enable_msi_msi_get_property="$1"
enable_msidb_Implementation="$1"
enable_msvcp90_basic_string_dtor="$1"
@ -635,6 +636,9 @@ patch_enable ()
mshtml-HTMLLocation_put_hash)
enable_mshtml_HTMLLocation_put_hash="$2"
;;
msi-Parse_Double_Quotes)
enable_msi_Parse_Double_Quotes="$2"
;;
msi-msi_get_property)
enable_msi_msi_get_property="$2"
;;
@ -3837,6 +3841,18 @@ if test "$enable_mshtml_HTMLLocation_put_hash" -eq 1; then
) >> "$patchlist"
fi
# Patchset msi-Parse_Double_Quotes
# |
# | Modified files:
# | * dlls/msi/action.c
# |
if test "$enable_msi_Parse_Double_Quotes" -eq 1; then
patch_apply msi-Parse_Double_Quotes/0001-msi-Correctly-parse-double-quotes-in-the-token-value.patch
(
echo '+ { "Dmitry Timoshkov", "msi: Correctly parse double quotes in the token value.", 1 },';
) >> "$patchlist"
fi
# Patchset msi-msi_get_property
# |
# | Modified files: