From dc6975b78ce2e90498c9e03772b430066344f92b Mon Sep 17 00:00:00 2001 From: Omer Aplatony Date: Sat, 26 Oct 2024 14:24:09 +0300 Subject: [PATCH] port-forward: fixed error handling for empty remote port Signed-off-by: Omer Aplatony Kubernetes-commit: c01a8a51af10811e182be896795168bbd561c7e9 --- pkg/cmd/portforward/portforward.go | 4 +++- pkg/cmd/portforward/portforward_test.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/portforward/portforward.go b/pkg/cmd/portforward/portforward.go index 4328560b..30519e81 100644 --- a/pkg/cmd/portforward/portforward.go +++ b/pkg/cmd/portforward/portforward.go @@ -223,7 +223,9 @@ func convertPodNamedPortToNumber(ports []string, pod corev1.Pod) ([]string, erro var converted []string for _, port := range ports { localPort, remotePort := splitPort(port) - + if remotePort == "" { + return nil, fmt.Errorf("remote port cannot be empty") + } containerPortStr := remotePort _, err := strconv.Atoi(remotePort) if err != nil { diff --git a/pkg/cmd/portforward/portforward_test.go b/pkg/cmd/portforward/portforward_test.go index 70b22f07..d6eddb80 100644 --- a/pkg/cmd/portforward/portforward_test.go +++ b/pkg/cmd/portforward/portforward_test.go @@ -820,6 +820,24 @@ func TestConvertPodNamedPortToNumber(t *testing.T) { ports: []string{"https", "http"}, err: true, }, + { + name: "empty port name", + pod: corev1.Pod{ + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ + { + Ports: []corev1.ContainerPort{ + { + ContainerPort: int32(27017)}, + }, + }, + }, + }, + }, + ports: []string{"28015:"}, + converted: nil, + err: true, + }, } for _, tc := range cases {