Limit jstream parse depth (#20474)

Add https://github.com/bcicen/jstream/pull/15 by vendoring the package.

Sets JSON depth limit to 100 entries in S3 Select.
This commit is contained in:
Klaus Post
2024-09-23 12:35:41 -07:00
committed by GitHub
parent 03e996320e
commit 974cbb3bb7
21 changed files with 1484 additions and 19 deletions

View File

@@ -27,11 +27,11 @@ import (
"testing"
"github.com/alecthomas/participle"
"github.com/bcicen/jstream"
"github.com/minio/minio/internal/s3select/jstream"
)
func getJSONStructs(b []byte) ([]interface{}, error) {
dec := jstream.NewDecoder(bytes.NewBuffer(b), 0).ObjectAsKVS()
dec := jstream.NewDecoder(bytes.NewBuffer(b), 0).ObjectAsKVS().MaxDepth(100)
var result []interface{}
for parsedVal := range dec.Stream() {
result = append(result, parsedVal.Value)