diff options
Diffstat (limited to 'testing/libfuzzer/pdf_fm2js_fuzzer.cc')
-rw-r--r-- | testing/libfuzzer/pdf_fm2js_fuzzer.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/testing/libfuzzer/pdf_fm2js_fuzzer.cc b/testing/libfuzzer/pdf_fm2js_fuzzer.cc index 3e3bfae0d4..ced5e18399 100644 --- a/testing/libfuzzer/pdf_fm2js_fuzzer.cc +++ b/testing/libfuzzer/pdf_fm2js_fuzzer.cc @@ -6,15 +6,17 @@ #include <cstdint> #include "core/fxcrt/fx_basic.h" +#include "core/fxcrt/fx_safe_types.h" #include "core/fxcrt/fx_string.h" #include "xfa/fxfa/fm2js/xfa_program.h" extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - if (size > std::numeric_limits<FX_STRSIZE>::max()) + FX_SAFE_STRSIZE safe_size = size; + if (!safe_size.IsValid()) return 0; - CFX_WideString input = CFX_WideString::FromUTF8( - CFX_ByteStringC(data, static_cast<FX_STRSIZE>(size))); + CFX_WideString input = + CFX_WideString::FromUTF8(CFX_ByteStringC(data, safe_size.ValueOrDie())); CXFA_FMProgram program; if (program.Init(input.AsStringC()) || program.ParseProgram()) return 0; |