diff options
Diffstat (limited to 'testing/libfuzzer/pdf_fm2js_fuzzer.cc')
-rw-r--r-- | testing/libfuzzer/pdf_fm2js_fuzzer.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/testing/libfuzzer/pdf_fm2js_fuzzer.cc b/testing/libfuzzer/pdf_fm2js_fuzzer.cc new file mode 100644 index 0000000000..803ef7c843 --- /dev/null +++ b/testing/libfuzzer/pdf_fm2js_fuzzer.cc @@ -0,0 +1,25 @@ +// Copyright 2016 The PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <cstddef> +#include <cstdint> + +#include "core/include/fxcrt/fx_basic.h" +#include "core/include/fxcrt/fx_string.h" +#include "xfa/src/fxfa/src/fm2js/xfa_fm2js.h" + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + if (size > std::numeric_limits<FX_STRSIZE>::max()) + return 0; + + CFX_WideString input = CFX_WideString::FromUTF8( + reinterpret_cast<const char*>(data), static_cast<FX_STRSIZE>(size)); + CXFA_FMProgram program; + if (program.Init(input) || program.ParseProgram()) + return 0; + + CFX_WideTextBuf js; + program.TranslateProgram(js); + return 0; +} |