[PATCH] D38855: Add a fuzz target for llvm's ItaniumDemangler.

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 12 11:27:30 PDT 2017


Can we reuse main from compiler-rt/lib/fuzzer/standalone?

On Thu, Oct 12, 2017, 11:23 AM Mitch Phillips via Phabricator <
reviews at reviews.llvm.org> wrote:

> hctim updated this revision to Diff 118814.
> hctim added a comment.
>
> - kcc's comments
>
>
> https://reviews.llvm.org/D38855
>
> Files:
>   tools/llvm-demangle-fuzzer/CMakeLists.txt
>   tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp
>
>
> Index: tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp
> ===================================================================
> --- /dev/null
> +++ tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp
> @@ -0,0 +1,24 @@
> +//===--- llvm-demangle-fuzzer.cpp - Fuzzer for the Itanium Demangler
> ------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
>
> +//===----------------------------------------------------------------------===//
> +
> +#include "llvm/Demangle/Demangle.h"
> +
> +#include <cstdint>
> +#include <cstdlib>
> +#include <string>
> +
> +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
> +  std::string NullTerminatedString((const char *)Data, Size);
> +  int status = 0;
> +  if (char *demangle =
> llvm::itaniumDemangle(NullTerminatedString.c_str(), nullptr,
> +                                         nullptr, &status))
> +    free(demangle);
> +
> +  return 0;
> +}
> Index: tools/llvm-demangle-fuzzer/CMakeLists.txt
> ===================================================================
> --- /dev/null
> +++ tools/llvm-demangle-fuzzer/CMakeLists.txt
> @@ -0,0 +1,6 @@
> +set(LLVM_LINK_COMPONENTS
> +  Demangle
> +)
> +add_llvm_fuzzer(llvm-demangle-fuzzer
> +  EXCLUDE_FROM_ALL
> +  llvm-demangle-fuzzer.cpp)
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171012/c7a56447/attachment.html>


More information about the llvm-commits mailing list