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

@@ -24,7 +24,7 @@ import (
"math"
"strings"
"github.com/bcicen/jstream"
"github.com/minio/minio/internal/s3select/jstream"
"github.com/minio/simdjson-go"
)

View File

@@ -20,7 +20,7 @@ package sql
import (
"errors"
"github.com/bcicen/jstream"
"github.com/minio/minio/internal/s3select/jstream"
"github.com/minio/simdjson-go"
)

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)

View File

@@ -22,7 +22,7 @@ import (
"fmt"
"strings"
"github.com/bcicen/jstream"
"github.com/minio/minio/internal/s3select/jstream"
"github.com/minio/simdjson-go"
)