simon-git: wix-on-linux (master): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Mon May 14 18:21:13 BST 2018
TL;DR:
1c1c385 Stop using real pointers as handles in makemsi.c.
Repository: https://git.tartarus.org/simon/wix-on-linux.git
On the web: https://git.tartarus.org/?p=simon/wix-on-linux.git
Branch updated: master
Committer: Simon Tatham <anakin at pobox.com>
Date: 2018-05-14 18:21:13
commit 1c1c3850e8a54938f41afb5e49a9176b229a3a88
web diff https://git.tartarus.org/?p=simon/wix-on-linux.git;a=commitdiff;h=1c1c3850e8a54938f41afb5e49a9176b229a3a88;hp=66f1f5d2bff9900a62db381c8718acb1982f4753
Author: Simon Tatham <anakin at pobox.com>
Date: Mon May 14 18:14:12 2018 +0100
Stop using real pointers as handles in makemsi.c.
Upgrading to Ubuntu 18.04, which seems to have become more prone to
allocating process memory above the 4G boundary, has revealed that the
client code of the phony msi.dll functions is not in fact prepared to
accept arbitrary machine-word sized pointer values. It's expecting
32-bit handles, so we were segfaulting because MsiDatabaseImportW was
only being given the bottom 32 bits of the 64-bit pointer that
MsiOpenDatabaseW had returned.
So now I just keep a trivial registry of small integer handle values
and the pointers they map to. I don't even bother to recycle them -
the process isn't expected to run for long enough for me to care.
makemsi.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 81 insertions(+), 22 deletions(-)
More information about the tartarus-commits
mailing list