diff --git a/file.go b/file.go index ac3ac30fc..426c1f75a 100644 --- a/file.go +++ b/file.go @@ -361,9 +361,10 @@ func (f *File) setBatchesFromJSON(bs []byte) error { } // Add new batches to file for i := range batches.Batches { - if batches.Batches[i] == nil { + if batches.Batches[i] == nil || batches.Batches[i].Header == nil { continue } + batch := *batches.Batches[i] batch.SetID(batch.Header.ID) batch.SetValidation(f.validateOpts) @@ -390,11 +391,12 @@ func (f *File) setBatchesFromJSON(bs []byte) error { // Add new iatBatches to file for i := range iatBatches.IATBatches { - if len(iatBatches.IATBatches) == 0 { + iatBatch := iatBatches.IATBatches[i] + + if iatBatch.Header == nil { continue } - iatBatch := iatBatches.IATBatches[i] iatBatch.ID = iatBatch.Header.ID iatBatch.SetValidation(f.validateOpts) diff --git a/server/test/unordered_batches/unordered_batch_test.go b/server/test/unordered_batches/unordered_batch_test.go index 110c463b3..b2dc961ef 100644 --- a/server/test/unordered_batches/unordered_batch_test.go +++ b/server/test/unordered_batches/unordered_batch_test.go @@ -52,7 +52,5 @@ func TestUnorderedBatches(t *testing.T) { server.Handler.ServeHTTP(w, req) w.Flush() - fmt.Printf("\n%s\n", w.Body.String()) - require.Equal(t, http.StatusOK, w.Code) } diff --git a/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/e499142d79b69666 b/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/e499142d79b69666 new file mode 100644 index 000000000..fe560eea4 --- /dev/null +++ b/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/e499142d79b69666 @@ -0,0 +1,2 @@ +go test fuzz v1 +string("{\"BAtChes\":[{\"BAtChHeAder\":null}]}") \ No newline at end of file diff --git a/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/iat-nil-header.txt b/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/iat-nil-header.txt new file mode 100644 index 000000000..00c7f2427 --- /dev/null +++ b/test/fuzz/testdata/fuzz/FuzzReaderWriterJSON/iat-nil-header.txt @@ -0,0 +1,2 @@ +go test fuzz v1 +string("{\"iatBatches\":[{\"IATBatchHeader\":null}]}")