Coverage Report

Created: 2024-02-25 06:22

/src/json_parse_fuzzer.cc
Line
Count
Source (jump to first uncovered line)
1
/* Copyright 2021 Google LLC
2
Licensed under the Apache License, Version 2.0 (the "License");
3
you may not use this file except in compliance with the License.
4
You may obtain a copy of the License at
5
      http://www.apache.org/licenses/LICENSE-2.0
6
Unless required by applicable law or agreed to in writing, software
7
distributed under the License is distributed on an "AS IS" BASIS,
8
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
See the License for the specific language governing permissions and
10
limitations under the License.
11
*/
12
13
#include "Poco/JSON/JSON.h"
14
#include "Poco/JSON/Parser.h"
15
#include "Poco/JSON/ParserImpl.h"
16
17
6.26k
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
18
6.26k
  std::string json(reinterpret_cast<const char *>(data), size);
19
6.26k
  Poco::JSON::Parser parser;
20
21
6.26k
  Poco::Dynamic::Var result;
22
6.26k
  try {
23
6.26k
    result = parser.parse(json);
24
6.26k
  } catch (Poco::Exception &e) {
25
6.19k
    return 0;
26
6.19k
  } catch (const std::exception &e) {
27
0
    return 0;
28
0
  }
29
78
  return 0;
30
6.26k
}