• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 # Copyright 2021 Google LLC.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 ################################################################################
17 */
18 
19 #include <stdint.h>
20 #include <string.h>
21 #include <stdlib.h>
22 #include "json.h"
23 
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)24 int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size){
25     char *new_str = (char *)malloc(size+1);
26     if (new_str == NULL) {
27         return 0;
28     }
29     memcpy(new_str, data, size);
30     new_str[size] = '\0';
31 
32     pool *p = make_sub_pool(NULL);
33     if (p != NULL) {
34         init_json();
35         pr_json_object_t *json = pr_json_object_from_text(p, new_str);
36         pr_json_object_free(json);
37         finish_json();
38         destroy_pool(p);
39     }
40 
41     free(new_str);
42     return 0;
43 }
44