[Bug 34842] Multiple .NET 3.5 apps occasionally fail to run when late-bound 'riched20.dll' prelink address is already occupied and PE mapped into >2 GiB address range (Garmin BaseCamp 4.1.2, GZDoom Builder 2.3)

WineHQ Bugzilla wine-bugs at winehq.org
Sun May 24 13:05:37 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=34842

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED
      Fixed by SHA1|                            |a6d57b0addc9513f1a938466882
                   |                            |5eadf60a51035
          Component|ntdll                       |richedit

--- Comment #6 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

this was fixed by commit
https://source.winehq.org/git/wine.git/commitdiff/a6d57b0addc9513f1a9384668825eadf60a51035
("riched20: Build with msvcrt."), part of Wine 4.11 release.

Thanks Alexandre

The case with 32-bit 'riched20.dll' PE loaded at preferred load address
0x7ac00000:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/GZDoom Builder

$ winedbg ./Builder.exe
...
Wine-dbg>info share

Module    Address            Debug info    Name (83 modules)
PE      320000-  35b000    Deferred        shlwapi
PE      360000-  372000    Deferred        shcore
PE      380000-  3db000    Deferred        setupapi
PE      3e0000-  3ea000    Deferred        version
PE      400000-  67a000    Deferred        builder
PE     1020000- 1086000    Deferred        rpcrt4
PE     1090000- 11a6000    Deferred        ole32
PE     11a0000- 11b4000    Deferred        imm32
PE     3d20000- 3e45000    Deferred        comctl32
PE     3e50000- 3e89000    Deferred        usp10
PE     3e90000- 3eb7000    Deferred        uxtheme
PE     3ec0000- 3ec6000    Deferred        fusion
PE     3ee0000- 3f43000    Deferred        dbghelp
PE     43a0000- 43d5000    Deferred        rsaenh
PE     4420000- 44cb000    Deferred        winmm
PE     44d0000- 44ee000    Deferred        msacm32
PE     44f0000- 457d000    Deferred        msvcp90
PE     4c10000- 50da000    Deferred        system.windows.forms
PE     50e0000- 5487000    Deferred        slimdx
PE     5d50000- 5d56000    Deferred        shfolder
PE     5d80000- 603e000    Deferred        devil
PE     6040000- 60c7000    Deferred        msvcp80
PE     62b0000- 63b8000    Deferred        oleaut32
PE     6390000- 63aa000    Deferred        propsys
PE     6970000- 699d000    Deferred        d3d9
PE     69e0000- 6a6c000    Deferred        d3dx9_43
PE     6a70000- 6acc000    Deferred        d3dcompiler_47
PE     6ad0000- 6aec000    Deferred        d3dxof
PE     6b60000- 6b7c000    Deferred        buildereffects
PE     6c70000- 6d28000    Deferred        buildermodes
PE     6d40000- 6d52000    Deferred        colorpicker
PE     6d80000- 6d8e000    Deferred        commentspanel
PE     6da0000- 6db2000    Deferred        nodesviewer
PE     6de0000- 6df6000    Deferred        soundpropagationmode
PE     6e30000- 6e42000    Deferred        tagexplorer
PE     6e80000- 6e8c000    Deferred        tagrange
PE     6ea0000- 6eca000    Deferred        visplaneexplorer
PE     6f20000- 6fcb000    Deferred        vlwrgctb
PE     6fd0000- 707b000    Deferred        ij3fjjdk
PE     7080000- 712b000    Deferred        qenlyqre
PE     7130000- 71db000    Deferred        9tek7zb0
PE     71e0000- 728b000    Deferred        iagdor5v
PE     7290000- 733b000    Deferred        9a47oc1c
PE     7340000- 73eb000    Deferred        hguxjukk
PE     73f0000- 749b000    Deferred        gb3s4ngz
PE     75e0000- 764e000    Deferred        sharpcompress.3.5
PE     7f90000- 7fa2000    Deferred        jsproxy
PE     7fb0000- 7fb9000    Deferred        dhcpcsvc
PE     8060000- 807b000    Deferred        mpr
PE    10000000-10023000    Deferred        sechost
PE    60000000-60008000    Deferred        accessibility
PE    60340000-60348000    Deferred        culture
PE    603b0000-60416000    Deferred        mscoreei
PE    637a0000-6399c000    Deferred        system.xml
PE    641f0000-6420e000    Deferred        shfusion
PE    64220000-64238000    Deferred        shfusres
PE    64890000-648fc000    Deferred        system.configuration
PE    6a640000-6ab1a000    Deferred        system.design
PE    783f0000-78433000    Deferred        msvcm90
PE    79000000-7906f000    Deferred        mscoree
PE    79060000-790b6000    Deferred        mscorjit
PE    790c0000-79500000    Deferred        mscorlib
PE    79e70000-7a3ff000    Deferred        mscorwks
PE    7a440000-7a732000    Deferred        system
PE    7a840000-7a844000    Deferred        opengl32
PE    7ac00000-7ac6a000    Deferred        riched20
PE    7ade0000-7ae7e000    Deferred        system.drawing
PE    7b000000-7b09e000    Deferred        kernelbase
PE    7b420000-7b5db000    Export          kernel32
PE    7bc30000-7bc34000    Deferred        ntdll
PE    f4230000-f4234000    Deferred        iphlpapi
PE    f5160000-f5164000    Deferred        wined3d
PE    f5b80000-f5b86000    Deferred        windowscodecs
PE    f5d90000-f5e33000    Deferred        msvcr90
PE    f5e60000-f5ea4000    Deferred        crypt32
PE    f6550000-f6554000    Deferred        bcrypt
PE    f67d0000-f67d4000    Deferred        winex11
PE    f68a0000-f7176000    Deferred        shell32
PE    f72a0000-f733b000    Deferred        msvcr80
PE    f7570000-f7577000    Deferred        gdi32
PE    f76d0000-f77b8000    Deferred        user32
PE    f7910000-f7914000    Deferred        ucrtbase
PE    f7a00000-f7a04000    Deferred        advapi32
--- snip ---

--- snip ---
PE    7ac00000-7ac6a000    Deferred        riched20
--- snip ---

That's because 'system.drawing' .NET assembly hasn't been NGENed to native
image yet which would otherwise occupy this area.

---

After running ngen to generate native images from .NET assemblies (GAC update),
the case with 32-bit 'riched20.dll' PE relocated to reserved area:

--- snip ---
Wine-dbg>info share

Module    Address            Debug info    Name (82 modules)
PE      320000-  35b000    Deferred        shlwapi
PE      360000-  372000    Deferred        shcore
PE      380000-  3db000    Deferred        setupapi
PE      3e0000-  3ea000    Deferred        version
PE      400000-  67a000    Deferred        builder
PE     1020000- 1086000    Deferred        rpcrt4
PE     1090000- 11a6000    Deferred        ole32
PE     11a0000- 11b4000    Deferred        imm32
PE     3880000- 39a5000    Deferred        comctl32
PE     39b0000- 39e9000    Deferred        usp10
PE     39f0000- 3a17000    Deferred        uxtheme
PE     3a20000- 3a26000    Deferred        fusion
PE     3a40000- 3aa3000    Deferred        dbghelp
PE     3aa0000- 473c000    Deferred        system.windows.forms.ni
PE     4750000- 4785000    Deferred        rsaenh
PE     47c0000- 486b000    Deferred        winmm
PE     4870000- 488e000    Deferred        msacm32
PE     4890000- 491d000    Deferred        msvcp90
PE     4eb0000- 5257000    Deferred        slimdx
PE     5420000- 5426000    Deferred        shfolder
PE     5480000- 573e000    Deferred        devil
PE     5740000- 57c7000    Deferred        msvcp80
PE     5940000- 5a48000    Deferred        oleaut32
PE     5a20000- 5a3a000    Deferred        propsys
PE     5ad0000- 5b3a000    Deferred        riched20
PE     5fb0000- 5fdd000    Deferred        d3d9
PE     6000000- 608c000    Deferred        d3dx9_43
PE     6090000- 60ec000    Deferred        d3dcompiler_47
PE     60f0000- 610c000    Deferred        d3dxof
PE     6110000- 61c8000    Deferred        buildermodes
PE     62e0000- 62fc000    Deferred        buildereffects
PE     6330000- 633e000    Deferred        commentspanel
PE     6370000- 6382000    Deferred        colorpicker
PE     63a0000- 63b2000    Deferred        nodesviewer
PE     63e0000- 63f6000    Deferred        soundpropagationmode
PE     6430000- 6442000    Deferred        tagexplorer
PE     6480000- 648c000    Deferred        tagrange
PE     64a0000- 64ca000    Deferred        visplaneexplorer
PE     6510000- 65bb000    Deferred        3boqjxig
PE     65c0000- 666b000    Deferred        wbul9bom
PE     6670000- 671b000    Deferred        0pkkrhh0
PE     6720000- 67cb000    Deferred        yq4go7w3
PE     67d0000- 687b000    Deferred        7i99q0kn
PE     6880000- 692b000    Deferred        vo3sx8ea
PE     6930000- 69db000    Deferred        f1v6rxoh
PE     69e0000- 6a8b000    Deferred        w8n49nvl
PE     6bc0000- 6c2e000    Deferred        sharpcompress.3.5
PE     6f00000- 6f1b000    Deferred        mpr
PE     76a0000- 76b2000    Deferred        jsproxy
PE     78c0000- 78c9000    Deferred        dhcpcsvc
PE    10000000-10023000    Deferred        sechost
PE    60340000-60348000    Deferred        culture
PE    603b0000-60416000    Deferred        mscoreei
PE    637a0000-63d28000    Deferred        system.xml.ni
PE    641f0000-6420e000    Deferred        shfusion
PE    64220000-64238000    Deferred        shfusres
PE    64890000-6498c000    Deferred        system.configuration.ni
PE    6a640000-6b0bc000    Deferred        system.design.ni
PE    783f0000-78433000    Deferred        msvcm90
PE    79000000-7906f000    Deferred        mscoree
PE    79060000-790b6000    Deferred        mscorjit
PE    790c0000-79bf6000    Deferred        mscorlib.ni
PE    79e70000-7a3ff000    Deferred        mscorwks
PE    7a440000-7ac2a000    Deferred        system.ni
PE    7ade0000-7af7c000    Deferred        system.drawing.ni
PE    7b000000-7b09e000    Deferred        kernelbase
PE    7b420000-7b5db000    Export          kernel32
PE    7bc30000-7bc34000    Deferred        ntdll
PE    f4040000-f4044000    Deferred        iphlpapi
PE    f4f50000-f4f54000    Deferred        opengl32
PE    f50a0000-f50a4000    Deferred        wined3d
PE    f5be0000-f5be6000    Deferred        windowscodecs
PE    f5df0000-f5e93000    Deferred        msvcr90
PE    f5ec0000-f5f04000    Deferred        crypt32
PE    f65b0000-f65b4000    Deferred        bcrypt
PE    f6840000-f6844000    Deferred        winex11
PE    f6900000-f71d6000    Deferred        shell32
PE    f7310000-f73ab000    Deferred        msvcr80
PE    f75d0000-f75d7000    Deferred        gdi32
PE    f7730000-f7818000    Deferred        user32
PE    f7970000-f7974000    Deferred        ucrtbase
PE    f7a60000-f7a64000    Deferred        advapi32
--- snip ---

--- snip ---
PE     5ad0000- 5b3a000    Deferred        riched20
--- snip ---

$ wine --version
wine-5.9

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list