Escape special characters in jsonpath field names.
Example: `{.items[*].metadata.labels.kubernetes\.io/hostname}`
[Resolves #31984]
This commit is contained in:
@@ -382,19 +382,21 @@ Loop:
|
||||
// parseField scans a field until a terminator
|
||||
func (p *Parser) parseField(cur *ListNode) error {
|
||||
p.consumeText()
|
||||
var r rune
|
||||
Loop:
|
||||
for {
|
||||
r = p.next()
|
||||
if isTerminator(r) {
|
||||
switch r := p.next(); {
|
||||
case r == '\\':
|
||||
p.next()
|
||||
case isTerminator(r):
|
||||
p.backup()
|
||||
break
|
||||
break Loop
|
||||
}
|
||||
}
|
||||
value := p.consumeText()
|
||||
if value == "*" {
|
||||
cur.append(newWildcard())
|
||||
} else {
|
||||
cur.append(newField(value))
|
||||
cur.append(newField(strings.Replace(value, "\\", "", -1)))
|
||||
}
|
||||
return p.parseInsideAction(cur)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user