Skip to content
This repository was archived by the owner on Mar 22, 2024. It is now read-only.
This repository was archived by the owner on Mar 22, 2024. It is now read-only.

AFL maybe_linking regression #110

@choller

Description

@choller

In 3ef34c1 the maybe_linking logic was removed, which will break any build system that invokes the compiler with -E for preprocessing only. We need to add the logic back at least for -E.

However, I am also concerned about the removal of the -shared case, which I added long ago to afl-clang-fast because it failed with mozilla-central otherwise. If multiple definitions of the runtime are linked into a single binary, the linker will deduplicate these in most cases (I wouldn't rely on this either, but I believe most modern linkers can deal with this). However, if you add the runtime to a shared library and a binary and then load the shared library into the binary, you will end up with two runtimes. This can potentially break stuff (we fixed this with sanitizers before, where it caused major problems).

I will try to come up with a PR later that adds the -E logic and maybe the -shared logic as well.

Cc @andreafioraldi

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions