Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

executor: Introduce Executor "Trait Objects" by using Type Erasure #41

Merged

Commits on Mar 9, 2022

  1. cli: Add fuzzuf::cli::fuzzer::nautilus namespace

    Signed-off-by: Akira Moroo <akiram@ricsec.co.jp>
    retrage committed Mar 9, 2022
    Configuration menu
    Copy the full SHA
    27c24cd View commit details
    Browse the repository at this point in the history
  2. executor: Add AFLExecutorInterface class

    This commit adds `AFLExecutorInterface` class to represent required
    functions for an executor to support AFL-compatible algorithms. This
    class accepts `std::shared_ptr<T>` of any class `T` as long as it
    satisfies the function requirements. This behavior mimics Rust's trait
    objects [1] using type erasure.
    
    [1] https://doc.rust-lang.org/book/ch17-02-trait-objects.html
    
    Signed-off-by: Akira Moroo <akiram@ricsec.co.jp>
    retrage committed Mar 9, 2022
    Configuration menu
    Copy the full SHA
    62a700a View commit details
    Browse the repository at this point in the history
  3. executor: Add LibFuzzerExecutorInterface class

    This commit adds `LibFuzzerExecutorInterface` class to represent
    required functions for an executor to support libFuzzer-compatible
    algorithms. This class accepts `std::shared_ptr<T>` of any class `T` as
    long as it satisfies the function requirements. This behavior mimics
    Rust's trait objects [1] using type erasure.
    
    [1] https://doc.rust-lang.org/book/ch17-02-trait-objects.html
    
    Signed-off-by: Akira Moroo <akiram@ricsec.co.jp>
    retrage committed Mar 9, 2022
    Configuration menu
    Copy the full SHA
    5d10737 View commit details
    Browse the repository at this point in the history
  4. build: Change to use AFLExecutorInterface for AFL family

    This commit changes to use `AFLExecutorInterface` instead of using
    `NativeLinuxExecutor` directly so that the algorithms are independent
    from actual executor type. Note that this commit does not affect
    algorithm behaviors and the executor is still fixed to
    `NativeLinuxExecutor`.
    
    Signed-off-by: Akira Moroo <akiram@ricsec.co.jp>
    retrage committed Mar 9, 2022
    Configuration menu
    Copy the full SHA
    7bd8384 View commit details
    Browse the repository at this point in the history
  5. build: Change to use LibFuzzerExecutorInterface for libFuzzer family

    This commti changes to use `LibFuzzerExecutorInterface` instead of using
    `NativeLinuxExecutor` directly so that the algorithms are independent
    form actual executor type. Note that this commit does not affect
    algorithm behaviors and the executor is still fixed to
    `NativeLinuxExecutor`.
    
    Signed-off-by: Akira Moroo <akiram@ricsec.co.jp>
    retrage committed Mar 9, 2022
    Configuration menu
    Copy the full SHA
    99f2876 View commit details
    Browse the repository at this point in the history