bc1c3655bf
Demangling Itanium symbols either consumes the whole input or fails, but Microsoft symbols can be successfully demangled with just some of the input. Add an outparam that enables clients to know how much of the input was consumed, and use this flag to give llvm-undname an opt-in warning on partially consumed symbols. Differential Revision: https://reviews.llvm.org/D80173
21 lines
744 B
C++
21 lines
744 B
C++
//===--- llvm-demangle-fuzzer.cpp - Fuzzer for the Itanium Demangler ------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#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);
|
|
free(llvm::microsoftDemangle(NullTerminatedString.c_str(), nullptr, nullptr,
|
|
nullptr, nullptr));
|
|
return 0;
|
|
}
|