summaryrefslogtreecommitdiff
path: root/vendor/gopkg.in/yaml.v2/decode.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-10-03 11:28:44 -0700
committerGitHub <noreply@github.com>2019-10-03 11:28:44 -0700
commit1f85f9f82e2bf3351f9257614be61cda618392ec (patch)
tree3924e6fa0294bec5384b87324aa6d86256a8ebff /vendor/gopkg.in/yaml.v2/decode.go
parentf96fbfcd6d34ba98dc4ddbc1d20e70dcab50ef88 (diff)
parent2f6276cd7261420bfb1685a64f5739b3bf7eba54 (diff)
downloadpodman-1f85f9f82e2bf3351f9257614be61cda618392ec.tar.gz
podman-1f85f9f82e2bf3351f9257614be61cda618392ec.tar.bz2
podman-1f85f9f82e2bf3351f9257614be61cda618392ec.zip
Merge pull request #4163 from containers/dependabot/go_modules/gopkg.in/yaml.v2-2.2.3
Bump gopkg.in/yaml.v2 from 2.2.2 to 2.2.3
Diffstat (limited to 'vendor/gopkg.in/yaml.v2/decode.go')
-rw-r--r--vendor/gopkg.in/yaml.v2/decode.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/vendor/gopkg.in/yaml.v2/decode.go b/vendor/gopkg.in/yaml.v2/decode.go
index e4e56e28e..91679b5b4 100644
--- a/vendor/gopkg.in/yaml.v2/decode.go
+++ b/vendor/gopkg.in/yaml.v2/decode.go
@@ -229,6 +229,10 @@ type decoder struct {
mapType reflect.Type
terrors []string
strict bool
+
+ decodeCount int
+ aliasCount int
+ aliasDepth int
}
var (
@@ -315,6 +319,13 @@ func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unm
}
func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {
+ d.decodeCount++
+ if d.aliasDepth > 0 {
+ d.aliasCount++
+ }
+ if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > 0.99 {
+ failf("document contains excessive aliasing")
+ }
switch n.kind {
case documentNode:
return d.document(n, out)
@@ -353,7 +364,9 @@ func (d *decoder) alias(n *node, out reflect.Value) (good bool) {
failf("anchor '%s' value contains itself", n.value)
}
d.aliases[n] = true
+ d.aliasDepth++
good = d.unmarshal(n.alias, out)
+ d.aliasDepth--
delete(d.aliases, n)
return good
}