diff --git a/pkg/kubelet/container/runtime.go b/pkg/kubelet/container/runtime.go index 2837e59bba0..661a0ecc77d 100644 --- a/pkg/kubelet/container/runtime.go +++ b/pkg/kubelet/container/runtime.go @@ -608,7 +608,7 @@ func BuildPodFullName(name, namespace string) string { // Parse the pod full name. func ParsePodFullName(podFullName string) (string, string, error) { parts := strings.Split(podFullName, "_") - if len(parts) != 2 { + if len(parts) != 2 || parts[0] == "" || parts[1] == "" { return "", "", fmt.Errorf("failed to parse the pod full name %q", podFullName) } return parts[0], parts[1], nil diff --git a/pkg/kubelet/pod/mirror_client_test.go b/pkg/kubelet/pod/mirror_client_test.go index b43c419250d..3d8cc81ddd6 100644 --- a/pkg/kubelet/pod/mirror_client_test.go +++ b/pkg/kubelet/pod/mirror_client_test.go @@ -32,7 +32,7 @@ func TestParsePodFullName(t *testing.T) { "bar.org_foo.com": {Name: "bar.org", Namespace: "foo.com"}, "bar-bar_foo": {Name: "bar-bar", Namespace: "foo"}, } - failedCases := []string{"barfoo", "bar_foo_foo", ""} + failedCases := []string{"barfoo", "bar_foo_foo", "", "bar_", "_foo"} for podFullName, expected := range successfulCases { name, namespace, err := kubecontainer.ParsePodFullName(podFullName)