diff options
| -rw-r--r-- | fuzz/jplist-leaks/clusterfuzz-testcase-minimized-jplist_fuzzer-5816111696838656 | 1 | ||||
| -rw-r--r-- | src/jplist.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/fuzz/jplist-leaks/clusterfuzz-testcase-minimized-jplist_fuzzer-5816111696838656 b/fuzz/jplist-leaks/clusterfuzz-testcase-minimized-jplist_fuzzer-5816111696838656 new file mode 100644 index 0000000..f19d601 --- /dev/null +++ b/fuzz/jplist-leaks/clusterfuzz-testcase-minimized-jplist_fuzzer-5816111696838656 | |||
| @@ -0,0 +1 @@ | |||
| [[][[][][][][][]{"ÿ222ÀÀÀÀÀÀÀÀÀÀÀÀ\uDBFF\uDFFFÀÀÀÀeÀÀ2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2221Ø2222222ÀÀÀÀÀÀÀÀÀÀÀ\uDBFF\uDFFFÀÀÀÀeÀÀ2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[]\r[][][][]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2221Ø2222222222h che[][][][][][][][][][][][][][][][][][][][][][][[][][][][][][][][][][][][][][][][][][][][][][][][][]22222h che22#"}[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]][]] \ No newline at end of file | |||
diff --git a/src/jplist.c b/src/jplist.c index 1629f59..c2d3ae3 100644 --- a/src/jplist.c +++ b/src/jplist.c | |||
| @@ -634,6 +634,7 @@ static plist_t parse_array(const char* js, jsmntok_info_t* ti, int* index) | |||
| 634 | for (num = 0; num < num_tokens; num++) { | 634 | for (num = 0; num < num_tokens; num++) { |
| 635 | if (j >= ti->count) { | 635 | if (j >= ti->count) { |
| 636 | PLIST_JSON_ERR("%s: token index out of valid range\n", __func__); | 636 | PLIST_JSON_ERR("%s: token index out of valid range\n", __func__); |
| 637 | plist_free(arr); | ||
| 637 | return NULL; | 638 | return NULL; |
| 638 | } | 639 | } |
| 639 | plist_t val = NULL; | 640 | plist_t val = NULL; |
| @@ -677,6 +678,7 @@ static plist_t parse_object(const char* js, jsmntok_info_t* ti, int* index) | |||
| 677 | for (num = 0; num < num_tokens; num++) { | 678 | for (num = 0; num < num_tokens; num++) { |
| 678 | if (j >= ti->count) { | 679 | if (j >= ti->count) { |
| 679 | PLIST_JSON_ERR("%s: token index out of valid range\n", __func__); | 680 | PLIST_JSON_ERR("%s: token index out of valid range\n", __func__); |
| 681 | plist_free(obj); | ||
| 680 | return NULL; | 682 | return NULL; |
| 681 | } | 683 | } |
| 682 | if (ti->tokens[j].type == JSMN_STRING) { | 684 | if (ti->tokens[j].type == JSMN_STRING) { |
