[Issue 13334] [infoleak] DMD always places module paths in data segment
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Feb 16 06:41:47 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=13334
Walter Bright <bugzilla at digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |WORKSFORME
--- Comment #3 from Walter Bright <bugzilla at digitalmars.com> ---
Modernizing the test case to:
import core.sys.windows.windows;
extern(Windows) void ExitProcess(DWORD);
void start() { ExitProcess(0); }
pragma(startaddress, start);
pragma(lib, "kernel32");
and compiling with:
dmd -betterC test2
produces:
02/15/2018 10:38 PM 2,076 test2.exe
and strings produces:
C:\cbx\bug>strings test2.exe
MZ`
Requires Win32 $
.idata
@_TEXT
`.reloc
@.debug
ExitProcess
KERNEL32.dll
and obj2asm produces:
C:\cbx\bug>obj2asm test2
_TEXT segment dword use32 public 'CODE' ;size is 0
_TEXT ends
_DATA segment para use32 public 'DATA' ;size is 0
_DATA ends
CONST segment para use32 public 'CONST' ;size is 0
CONST ends
_BSS segment para use32 public 'BSS' ;size is 0
_BSS ends
FLAT group
extrn _D5test25startFZv
includelib kernel32.lib
extrn _ExitProcess at 4
_D5test25startFZv COMDAT flags=x0 attr=x0 align=x0
_TEXT segment
assume CS:_TEXT
_TEXT ends
_DATA segment
_DATA ends
CONST segment
CONST ends
_BSS segment
_BSS ends
_D5test25startFZv comdat
assume CS:_D5test25startFZv
L0: push 0
call near ptr _ExitProcess at 4
ret
_D5test25startFZv ends
end
which looks satisfactory.
--
More information about the Digitalmars-d-bugs
mailing list