diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2021-03-09 11:53:50 +0100 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2021-03-09 11:53:50 +0100 |
commit | 930bec4d3a7cfe83784ded58e5f8f88d062dd3e2 (patch) | |
tree | e7d610faea82090a3049001a39045d7fb486efa4 | |
parent | 36ec835298d0e33a2f783ceaf4ed19a3b62075f7 (diff) | |
download | podman-930bec4d3a7cfe83784ded58e5f8f88d062dd3e2.tar.gz podman-930bec4d3a7cfe83784ded58e5f8f88d062dd3e2.tar.bz2 podman-930bec4d3a7cfe83784ded58e5f8f88d062dd3e2.zip |
podman load: fix error handling
Make sure to properly return loading errors and to set the exit code
accordingly.
Fixes: #9672
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
-rw-r--r-- | libpod/runtime_img.go | 3 | ||||
-rw-r--r-- | test/system/120-load.bats | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libpod/runtime_img.go b/libpod/runtime_img.go index abefca788..90b11f8ca 100644 --- a/libpod/runtime_img.go +++ b/libpod/runtime_img.go @@ -316,7 +316,8 @@ func (r *Runtime) LoadImageFromSingleImageArchive(ctx context.Context, writer io } { src, err := referenceFn() if err == nil && src != nil { - if newImages, err := r.ImageRuntime().LoadFromArchiveReference(ctx, src, signaturePolicy, writer); err == nil { + newImages, err := r.ImageRuntime().LoadFromArchiveReference(ctx, src, signaturePolicy, writer) + if err == nil { return getImageNames(newImages), nil } saveErr = err diff --git a/test/system/120-load.bats b/test/system/120-load.bats index 902cd9f5e..936449bdb 100644 --- a/test/system/120-load.bats +++ b/test/system/120-load.bats @@ -26,6 +26,13 @@ verify_iid_and_name() { is "$new_img_name" "$1" "Name & tag of restored image" } +@test "podman load invalid file" { + # Regression test for #9672 to make sure invalid input yields errors. + invalid=$PODMAN_TMPDIR/invalid + echo "I am an invalid file and should cause a podman-load error" > $invalid + run_podman 125 load -i $invalid +} + @test "podman save to pipe and load" { # Generate a random name and tag (must be lower-case) local random_name=x0$(random_string 12 | tr A-Z a-z) |