Index: testing/libfuzzer/pdf_fm2js_fuzzer.cc |
diff --git a/testing/libfuzzer/pdf_fm2js_fuzzer.cc b/testing/libfuzzer/pdf_fm2js_fuzzer.cc |
index 3e3bfae0d462d5992a1c1c4e25ada4e920d398a5..ced5e183994ed8def3406b3269dfc0d0d2980be1 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; |