Skip to content

msan fails on FreeBSD with ASLR enabled #53256

Open
@emaste

Description

@emaste

Disabling ASLR should not be a requirement for using msan on FreeBSD.

Right now it fails with

This sanitizer is not compatible with enabled ASLR and binaries compiled with PIE

The check was added in e2ed800.

If I downgrade the error to a warning locally I see:

$ ./a.out
This sanitizer is not compatible with enabled ASLR and binaries compiled with PIE
Running anyway
FATAL: Code 0x3dd1ab38d9b0 is out of application range. Non-PIE build?
FATAL: MemorySanitizer can not mmap the shadow memory.
FATAL: Make sure to compile with -fPIE and to link with -pie.
FATAL: Disabling ASLR is known to cause this error.
FATAL: If running under GDB, try 'set disable-randomization off'.
==81625==Process memory map follows:
        0x3dd1ab35b000-0x3dd1ab38c000   /usr/home/emaste/src/samples/llvm/msan/a.out
        0x3dd1ab38c000-0x3dd1ab3eb000   /usr/home/emaste/src/samples/llvm/msan/a.out
        0x3dd1ab3eb000-0x3dd1ab3ec000   /usr/home/emaste/src/samples/llvm/msan/a.out
        0x3dd1ab3ec000-0x3dd1ab3ef000   /usr/home/emaste/src/samples/llvm/msan/a.out
...

The "Code" address 0x3dd1ab38d9b0 is within the second address range 0x3dd1ab38c000-0x3dd1ab3eb000 for a.out.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions