jsonpath: disallow multiple immediate recursive descent (e.g. ....Foo)

Kubernetes-commit: 8c702254938c40a48b2e3db78fcc944ca50fdc65
This commit is contained in:
Joel Smith
2020-07-30 10:53:12 -06:00
committed by Kubernetes Publisher
parent 6ecbef1775
commit 2221ace373
3 changed files with 7 additions and 1 deletions

View File

@@ -214,8 +214,11 @@ func (p *Parser) parseIdentifier(cur *ListNode) error {
return p.parseInsideAction(cur)
}
// parseRecursive scans the recursive desent operator ..
// parseRecursive scans the recursive descent operator ..
func (p *Parser) parseRecursive(cur *ListNode) error {
if lastIndex := len(cur.Nodes) - 1; lastIndex >= 0 && cur.Nodes[lastIndex].Type() == NodeRecursive {
return fmt.Errorf("invalid multiple recursive descent")
}
p.pos += len("..")
p.consumeText()
cur.append(newRecursive())