From c9414c2bbaf9acfc245fc481ba2831efe7fdc7d6 Mon Sep 17 00:00:00 2001 From: zhiming Date: Sat, 5 Jun 2021 20:33:17 +0800 Subject: [PATCH 1/3] fix bug where string slice flag is not assigned --- .../src/k8s.io/component-base/cli/flag/string_slice_flag.go | 3 +-- .../k8s.io/component-base/cli/flag/string_slice_flag_test.go | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go index 37a1d778a39..133d4e9ada3 100644 --- a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go +++ b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go @@ -46,8 +46,7 @@ func (s *StringSlice) String() string { func (s *StringSlice) Set(val string) error { if s.value == nil || !s.changed { - v := make([]string, 0) - s.value = &v + *s.value = make([]string, 0) } *s.value = append(*s.value, val) s.changed = true diff --git a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag_test.go b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag_test.go index 745ff052328..6e5ef240679 100644 --- a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag_test.go +++ b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag_test.go @@ -83,8 +83,8 @@ func TestStringSlice(t *testing.T) { } else if err != nil { t.Errorf("%d: expected nil error, got %v", i, err) } - if !reflect.DeepEqual(*v.value, test.expected) { - t.Errorf("%d: expected %+v, got %+v", i, test.expected, *v.value) + if !reflect.DeepEqual(s, test.expected) { + t.Errorf("%d: expected %+v, got %+v", i, test.expected, s) } if v.changed != test.changed { t.Errorf("%d: expected %t got %t", i, test.changed, v.changed) From abf658432273988ccf142799a39b44ac836232a1 Mon Sep 17 00:00:00 2001 From: zhiming Date: Wed, 16 Jun 2021 21:25:47 +0800 Subject: [PATCH 2/3] update string_slice_flag add nil judgment --- .../src/k8s.io/component-base/cli/flag/string_slice_flag.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go index 133d4e9ada3..a49cd770338 100644 --- a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go +++ b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go @@ -18,6 +18,7 @@ package flag import ( goflag "flag" + "fmt" "strings" "github.com/spf13/pflag" @@ -45,7 +46,10 @@ func (s *StringSlice) String() string { } func (s *StringSlice) Set(val string) error { - if s.value == nil || !s.changed { + if s.value == nil { + return fmt.Errorf("no target (nil pointer to []string)") + } + if *s.value == nil || !s.changed { *s.value = make([]string, 0) } *s.value = append(*s.value, val) From ab4918b6bc041dab5fd162bd84d4d6495ebc1ce5 Mon Sep 17 00:00:00 2001 From: zhiming Date: Tue, 29 Jun 2021 09:09:08 +0800 Subject: [PATCH 3/3] remove redundant clause in string_slice_flag --- staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go index a49cd770338..ad0d07d758e 100644 --- a/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go +++ b/staging/src/k8s.io/component-base/cli/flag/string_slice_flag.go @@ -49,7 +49,7 @@ func (s *StringSlice) Set(val string) error { if s.value == nil { return fmt.Errorf("no target (nil pointer to []string)") } - if *s.value == nil || !s.changed { + if !s.changed { *s.value = make([]string, 0) } *s.value = append(*s.value, val)