12345678910111213141516171819202122232425262728293031323334353637 |
- // Copyright 2019 The Chromium 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 "chromeos/printing/ppd_line_reader.h"
- #include <memory>
- #include <string>
- #include <fuzzer/FuzzedDataProvider.h>
- namespace {
- constexpr int kUpperMaxLineLengthBound = 1024;
- } // namespace
- namespace chromeos {
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- FuzzedDataProvider data_provider(data, size);
- const size_t line_length =
- data_provider.ConsumeIntegralInRange<size_t>(0, kUpperMaxLineLengthBound);
- const std::string contents = data_provider.ConsumeRemainingBytesAsString();
- std::unique_ptr<PpdLineReader> ppd_line_reader =
- PpdLineReader::Create(contents, line_length);
- std::string line;
- while (ppd_line_reader->NextLine(&line)) {
- // Call NextLine() until we hit the end of the file or an error.
- }
- return 0;
- }
- } // namespace chromeos
|