diff options
author | thestig <thestig@chromium.org> | 2016-11-08 12:59:30 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-08 12:59:30 -0800 |
commit | 62114cf3d85ee9149b270e02935c98395567f45e (patch) | |
tree | bd5a8e1dcaeb47e53c033c30c44f9f2e33bb3dbc /testing/libfuzzer/pdf_xml_fuzzer.cc | |
parent | c59fa8895fa6fa8428b9b278eee6f05478ab8f56 (diff) | |
download | pdfium-62114cf3d85ee9149b270e02935c98395567f45e.tar.xz |
Compile fuzzer sources in standalone builds. (try 2)
- Add a template for fuzzers to remove redundancy.
- Sort fuzzers in alphabetical order.
Previous attempt: https://codereview.chromium.org/2480043002/
Review-Url: https://codereview.chromium.org/2481933003
Diffstat (limited to 'testing/libfuzzer/pdf_xml_fuzzer.cc')
-rw-r--r-- | testing/libfuzzer/pdf_xml_fuzzer.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/testing/libfuzzer/pdf_xml_fuzzer.cc b/testing/libfuzzer/pdf_xml_fuzzer.cc index 7bd0b66b37..91b4d6026c 100644 --- a/testing/libfuzzer/pdf_xml_fuzzer.cc +++ b/testing/libfuzzer/pdf_xml_fuzzer.cc @@ -4,11 +4,12 @@ #include <cstddef> #include <cstdint> -#include <limits> #include <memory> #include "core/fxcrt/fx_basic.h" +#include "core/fxcrt/fx_safe_types.h" #include "core/fxcrt/fx_system.h" +#include "third_party/base/ptr_util.h" #include "xfa/fde/xml/fde_xml_imp.h" #include "xfa/fxfa/parser/cxfa_xml_parser.h" #include "xfa/fxfa/parser/cxfa_widetextread.h" @@ -45,17 +46,18 @@ CFDE_XMLNode* XFA_FDEExtension_GetDocumentNode( } // namespace 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())); std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> stream( new CXFA_WideTextRead(input)); if (!stream) return 0; - std::unique_ptr<CFDE_XMLDoc> doc(new CFDE_XMLDoc); + std::unique_ptr<CFDE_XMLDoc> doc = pdfium::MakeUnique<CFDE_XMLDoc>(); std::unique_ptr<CFDE_XMLParser, ReleaseDeleter<CFDE_XMLParser>> parser( new CXFA_XMLParser(doc->GetRoot(), stream.get())); |