mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 18:00:08 +00:00
stop panicing on bad array length
This commit is contained in:
parent
8a8f394f0d
commit
e683842359
@ -234,6 +234,16 @@ func (j *JSONPath) evalArray(input []reflect.Value, node *ArrayNode) ([]reflect.
|
|||||||
params[1].Value += value.Len()
|
params[1].Value += value.Len()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sliceLength := value.Len()
|
||||||
|
if params[1].Value != params[0].Value { // if you're requesting zero elements, allow it through.
|
||||||
|
if params[0].Value >= sliceLength {
|
||||||
|
return input, fmt.Errorf("array index out of bounds: index %d, length %d", params[0].Value, sliceLength)
|
||||||
|
}
|
||||||
|
if params[1].Value > sliceLength {
|
||||||
|
return input, fmt.Errorf("array index out of bounds: index %d, length %d", params[1].Value-1, sliceLength)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !params[2].Known {
|
if !params[2].Known {
|
||||||
value = value.Slice(params[0].Value, params[1].Value)
|
value = value.Slice(params[0].Value, params[1].Value)
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user