diff options
author | Simon Tatham <anakin@pobox.com> | 2018-05-14 18:14:12 +0100 |
---|---|---|
committer | Simon Tatham <anakin@pobox.com> | 2018-05-14 18:14:12 +0100 |
commit | 1c1c3850e8a54938f41afb5e49a9176b229a3a88 (patch) | |
tree | 87afe7756a633bad27bb8ae19fda6704de614c34 /memory.c | |
parent | 66f1f5d2bff9900a62db381c8718acb1982f4753 (diff) | |
download | wix-on-linux-1c1c3850e8a54938f41afb5e49a9176b229a3a88.tar.gz wix-on-linux-1c1c3850e8a54938f41afb5e49a9176b229a3a88.tar.bz2 wix-on-linux-1c1c3850e8a54938f41afb5e49a9176b229a3a88.zip |
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.
Diffstat (limited to 'memory.c')
0 files changed, 0 insertions, 0 deletions