From b96e7f5a8a841942b75f605315ae314b20d8b95c Mon Sep 17 00:00:00 2001 From: lala123912 Date: Thu, 4 Mar 2021 11:53:24 +0800 Subject: [PATCH] =?UTF-8?q?fix=20RemoveStatusCondition=EF=BC=88=EF=BC=89?= =?UTF-8?q?=20=20cap=20out=20of=20range?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- staging/src/k8s.io/apimachinery/pkg/api/meta/conditions.go | 2 +- .../src/k8s.io/apimachinery/pkg/api/meta/conditions_test.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions.go b/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions.go index 343a6f550e9..00874f89cc6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions.go @@ -57,7 +57,7 @@ func SetStatusCondition(conditions *[]metav1.Condition, newCondition metav1.Cond // RemoveStatusCondition removes the corresponding conditionType from conditions. // conditions must be non-nil. func RemoveStatusCondition(conditions *[]metav1.Condition, conditionType string) { - if conditions == nil { + if conditions == nil || len(*conditions) == 0 { return } newConditions := make([]metav1.Condition, 0, len(*conditions)-1) diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions_test.go b/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions_test.go index e51c5bfc5d9..72e5f680cac 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/conditions_test.go @@ -121,6 +121,12 @@ func TestRemoveStatusCondition(t *testing.T) { {Type: "third"}, }, }, + { + name: "empty_conditions", + conditions: []metav1.Condition{}, + conditionType: "Foo", + expected: []metav1.Condition{}, + }, } for _, test := range tests {