diff options
Diffstat (limited to 'vendor/github.com/xeipuuv/gojsonschema')
-rw-r--r-- | vendor/github.com/xeipuuv/gojsonschema/.travis.yml | 2 | ||||
-rw-r--r-- | vendor/github.com/xeipuuv/gojsonschema/draft.go | 5 | ||||
-rw-r--r-- | vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/vendor/github.com/xeipuuv/gojsonschema/.travis.yml b/vendor/github.com/xeipuuv/gojsonschema/.travis.yml index 36155164d..3289001cd 100644 --- a/vendor/github.com/xeipuuv/gojsonschema/.travis.yml +++ b/vendor/github.com/xeipuuv/gojsonschema/.travis.yml @@ -1,8 +1,8 @@ language: go go: - - "1.10" - "1.11" - "1.12" + - "1.13" before_install: - go get github.com/xeipuuv/gojsonreference - go get github.com/xeipuuv/gojsonpointer diff --git a/vendor/github.com/xeipuuv/gojsonschema/draft.go b/vendor/github.com/xeipuuv/gojsonschema/draft.go index 7a0123cc7..61298e7aa 100644 --- a/vendor/github.com/xeipuuv/gojsonschema/draft.go +++ b/vendor/github.com/xeipuuv/gojsonschema/draft.go @@ -92,6 +92,11 @@ func parseSchemaURL(documentNode interface{}) (string, *Draft, error) { if isKind(documentNode, reflect.Bool) { return "", nil, nil } + + if !isKind(documentNode, reflect.Map) { + return "", nil, errors.New("schema is invalid") + } + m := documentNode.(map[string]interface{}) if existsMapKey(m, KEY_SCHEMA) { diff --git a/vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go b/vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go index 4f57ff789..5d88af263 100644 --- a/vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go +++ b/vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go @@ -33,6 +33,7 @@ import ( "io" "io/ioutil" "net/http" + "net/url" "os" "path/filepath" "runtime" @@ -145,6 +146,12 @@ func (l *jsonReferenceLoader) LoadJSON() (interface{}, error) { if reference.HasFileScheme { filename := strings.TrimPrefix(refToURL.String(), "file://") + filename, err = url.QueryUnescape(filename) + + if err != nil { + return nil, err + } + if runtime.GOOS == "windows" { // on Windows, a file URL may have an extra leading slash, use slashes // instead of backslashes, and have spaces escaped |