https://git.reactos.org/?p=reactos.git;a=commitdiff;h=48d97683b30c0cbaf4c229e36c48a69674332526

commit 48d97683b30c0cbaf4c229e36c48a69674332526
Author:     winesync <ros-...@reactos.org>
AuthorDate: Mon Mar 14 21:53:54 2022 +0100
Commit:     Mark Jansen <mark.jan...@reactos.org>
CommitDate: Sun Mar 20 19:28:45 2022 +0100

    [WINESYNC] msi: Do not sign extend after multiplying.
    
    Signed-off-by: Mark Jansen <learn0more+w...@gmail.com>
    
    wine-staging patch by Mark Jansen <learn0more+w...@gmail.com>
---
 ...-msi__Do_not_sign_extend_after_multiplying.diff | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git 
a/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
 
b/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
new file mode 100644
index 00000000000..6f8e3524a5b
--- /dev/null
+++ 
b/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
@@ -0,0 +1,26 @@
+diff --git 
a/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
 
b/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
+new file mode 100644
+index 00000000000..307428366a3
+--- /dev/null
++++ 
b/sdk/tools/winesync/msi_staging/0001-msi__Do_not_sign_extend_after_multiplying.diff
+@@ -0,0 +1,20 @@
++diff --git a/dll/win32/msi/dialog.c b/dll/win32/msi/dialog.c
++index 9d82be8..8e4c151 100644
++--- a/dll/win32/msi/dialog.c
+++++ b/dll/win32/msi/dialog.c
++@@ -3186,13 +3186,13 @@ static LONGLONG msi_vcl_get_cost( msi_dialog *dialog )
++                 MSICOSTTREE_SELFONLY, INSTALLSTATE_LOCAL, &each_cost)))
++         {
++             /* each_cost is in 512-byte units */
++-            total_cost += each_cost * 512;
+++            total_cost += ((LONGLONG)each_cost) * 512;
++         }
++         if (ERROR_SUCCESS == (MSI_GetFeatureCost(dialog->package, feature,
++                 MSICOSTTREE_SELFONLY, INSTALLSTATE_ABSENT, &each_cost)))
++         {
++             /* each_cost is in 512-byte units */
++-            total_cost -= each_cost * 512;
+++            total_cost -= ((LONGLONG)each_cost) * 512;
++         }
++     }
++     return total_cost;

Reply via email to