podman kube play: fix broken annotation parsing

If a user did not set an equal sign in the annotation that old code
would panic when accessing the second element in the slice.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger
2023-12-08 18:05:45 +01:00
parent e916f49f0b
commit 48ab4aec31
2 changed files with 5 additions and 1 deletions

View File

@ -239,7 +239,7 @@ func play(cmd *cobra.Command, args []string) error {
for _, annotation := range playOptions.annotations {
splitN := strings.SplitN(annotation, "=", 2)
if len(splitN) > 2 {
if len(splitN) != 2 {
return fmt.Errorf("annotation %q must include an '=' sign", annotation)
}
if playOptions.Annotations == nil {

View File

@ -444,6 +444,10 @@ _EOF
is "$output" ".*name:$RANDOMSTRING" "Annotation should be added to pod"
is "$output" ".*anno:$ANNOTATION_WITH_COMMA" "Annotation with comma should be added to pod"
# invalid annotation
run_podman 125 kube play --annotation "val" $PODMAN_TMPDIR/test.yaml
assert "$output" == "Error: annotation \"val\" must include an '=' sign" "invalid annotation error"
run_podman stop -a -t 0
run_podman pod rm -t 0 -f test_pod
}