Skip to content

Commit

Permalink
Merge pull request from GHSA-67fx-wx78-jx33
Browse files Browse the repository at this point in the history
Update schema validation handling
  • Loading branch information
hickeyma committed Dec 14, 2022
2 parents f91b515 + 775af2a commit bafafa8
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
8 changes: 7 additions & 1 deletion pkg/chartutil/jsonschema.go
Expand Up @@ -55,7 +55,13 @@ func ValidateAgainstSchema(chrt *chart.Chart, values map[string]interface{}) err
}

// ValidateAgainstSingleSchema checks that values does not violate the structure laid out in this schema
func ValidateAgainstSingleSchema(values Values, schemaJSON []byte) error {
func ValidateAgainstSingleSchema(values Values, schemaJSON []byte) (reterr error) {
defer func() {
if r := recover(); r != nil {
reterr = fmt.Errorf("unable to validate schema: %s", r)
}
}()

valuesData, err := yaml.Marshal(values)
if err != nil {
return err
Expand Down
24 changes: 24 additions & 0 deletions pkg/chartutil/jsonschema_test.go
Expand Up @@ -38,6 +38,30 @@ func TestValidateAgainstSingleSchema(t *testing.T) {
}
}

func TestValidateAgainstInvalidSingleSchema(t *testing.T) {
values, err := ReadValuesFile("./testdata/test-values.yaml")
if err != nil {
t.Fatalf("Error reading YAML file: %s", err)
}
schema, err := ioutil.ReadFile("./testdata/test-values-invalid.schema.json")
if err != nil {
t.Fatalf("Error reading YAML file: %s", err)
}

var errString string
if err := ValidateAgainstSingleSchema(values, schema); err == nil {
t.Fatalf("Expected an error, but got nil")
} else {
errString = err.Error()
}

expectedErrString := "unable to validate schema: runtime error: invalid " +
"memory address or nil pointer dereference"
if errString != expectedErrString {
t.Errorf("Error string :\n`%s`\ndoes not match expected\n`%s`", errString, expectedErrString)
}
}

func TestValidateAgainstSingleSchemaNegative(t *testing.T) {
values, err := ReadValuesFile("./testdata/test-values-negative.yaml")
if err != nil {
Expand Down
1 change: 1 addition & 0 deletions pkg/chartutil/testdata/test-values-invalid.schema.json
@@ -0,0 +1 @@
1E1111111

0 comments on commit bafafa8

Please sign in to comment.