Merge commit from fork

Advisory fix 1
pull/31132/head
Robert Sirchia 3 weeks ago committed by GitHub
commit d7d072b7f6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -16,6 +16,7 @@ limitations under the License.
package util package util
import ( import (
"fmt"
"log/slog" "log/slog"
"strings" "strings"
@ -265,8 +266,8 @@ func processImportValues(c *chart.Chart, merge bool) error {
for _, riv := range r.ImportValues { for _, riv := range r.ImportValues {
switch iv := riv.(type) { switch iv := riv.(type) {
case map[string]interface{}: case map[string]interface{}:
child := iv["child"].(string) child := fmt.Sprintf("%v", iv["child"])
parent := iv["parent"].(string) parent := fmt.Sprintf("%v", iv["parent"])
outiv = append(outiv, map[string]string{ outiv = append(outiv, map[string]string{
"child": child, "child": child,

@ -16,6 +16,7 @@ limitations under the License.
package util package util
import ( import (
"fmt"
"log/slog" "log/slog"
"strings" "strings"
@ -265,8 +266,8 @@ func processImportValues(c *chart.Chart, merge bool) error {
for _, riv := range r.ImportValues { for _, riv := range r.ImportValues {
switch iv := riv.(type) { switch iv := riv.(type) {
case map[string]interface{}: case map[string]interface{}:
child := iv["child"].(string) child := fmt.Sprintf("%v", iv["child"])
parent := iv["parent"].(string) parent := fmt.Sprintf("%v", iv["parent"])
outiv = append(outiv, map[string]string{ outiv = append(outiv, map[string]string{
"child": child, "child": child,

@ -160,6 +160,9 @@ func validateChartVersion(cf *chart.Metadata) error {
func validateChartMaintainer(cf *chart.Metadata) error { func validateChartMaintainer(cf *chart.Metadata) error {
for _, maintainer := range cf.Maintainers { for _, maintainer := range cf.Maintainers {
if maintainer == nil {
return errors.New("a maintainer entry is empty")
}
if maintainer.Name == "" { if maintainer.Name == "" {
return errors.New("each maintainer requires a name") return errors.New("each maintainer requires a name")
} else if maintainer.Email != "" && !govalidator.IsEmail(maintainer.Email) { } else if maintainer.Email != "" && !govalidator.IsEmail(maintainer.Email) {

@ -142,6 +142,16 @@ func TestValidateChartMaintainer(t *testing.T) {
t.Errorf("validateChartMaintainer(%s, %s) to return no error, got %s", test.Name, test.Email, err.Error()) t.Errorf("validateChartMaintainer(%s, %s) to return no error, got %s", test.Name, test.Email, err.Error())
} }
} }
// Testing for an empty maintainer
badChart.Maintainers = []*chart.Maintainer{nil}
err := validateChartMaintainer(badChart)
if err == nil {
t.Errorf("validateChartMaintainer did not return error for nil maintainer as expected")
}
if err.Error() != "a maintainer entry is empty" {
t.Errorf("validateChartMaintainer returned unexpected error for nil maintainer: %s", err.Error())
}
} }
func TestValidateChartSources(t *testing.T) { func TestValidateChartSources(t *testing.T) {

@ -355,7 +355,8 @@ func loadIndex(data []byte, source string) (*IndexFile, error) {
for name, cvs := range i.Entries { for name, cvs := range i.Entries {
for idx := len(cvs) - 1; idx >= 0; idx-- { for idx := len(cvs) - 1; idx >= 0; idx-- {
if cvs[idx] == nil { if cvs[idx] == nil {
slog.Warn("skipping loading invalid entry for chart %q from %s: empty entry", name, source) slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q from %s: empty entry", name, source))
cvs = append(cvs[:idx], cvs[idx+1:]...)
continue continue
} }
// When metadata section missing, initialize with no data // When metadata section missing, initialize with no data
@ -366,7 +367,7 @@ func loadIndex(data []byte, source string) (*IndexFile, error) {
cvs[idx].APIVersion = chart.APIVersionV1 cvs[idx].APIVersion = chart.APIVersionV1
} }
if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil { if err := cvs[idx].Validate(); ignoreSkippableChartValidationError(err) != nil {
slog.Warn("skipping loading invalid entry for chart %q %q from %s: %s", name, cvs[idx].Version, source, err) slog.Warn(fmt.Sprintf("skipping loading invalid entry for chart %q %q from %s: %s", name, cvs[idx].Version, source, err))
cvs = append(cvs[:idx], cvs[idx+1:]...) cvs = append(cvs[:idx], cvs[idx+1:]...)
} }
} }

@ -68,6 +68,7 @@ entries:
grafana: grafana:
- apiVersion: v2 - apiVersion: v2
name: grafana name: grafana
- null
foo: foo:
- -
bar: bar:

Loading…
Cancel
Save