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;