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