diff options
Diffstat (limited to 'projects/json-patch/fuzz_decode_apply.go')
-rw-r--r-- | projects/json-patch/fuzz_decode_apply.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/projects/json-patch/fuzz_decode_apply.go b/projects/json-patch/fuzz_decode_apply.go new file mode 100644 index 000000000..315955804 --- /dev/null +++ b/projects/json-patch/fuzz_decode_apply.go @@ -0,0 +1,25 @@ +package jsonpatch + +import ( + "bytes" +) + +func FuzzDecodeApply(data []byte) int { + s := bytes.Split(data, []byte{0}) + if len(s) != 2 { + return 0 + } + patchJSON := s[0] + original := s[1] + + patch, err := DecodePatch(patchJSON) + if err != nil { + return 0 + } + + _, err = patch.Apply(original) + if err != nil { + return 0 + } + return 1 +} |