summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2020-06-02 17:10:57 -0400
committerMatthew Heon <matthew.heon@pm.me>2020-06-02 17:22:00 -0400
commit4b37d4d5af50b67742e5f3097075e7493488d91a (patch)
treecd3de69116973b3e2206c72853c802339b0e4423
parentc4ccd7cbc1509bab6183c47f740cbf2cc4ee0424 (diff)
downloadpodman-4b37d4d5af50b67742e5f3097075e7493488d91a.tar.gz
podman-4b37d4d5af50b67742e5f3097075e7493488d91a.tar.bz2
podman-4b37d4d5af50b67742e5f3097075e7493488d91a.zip
Fix a segfault in `podman inspect -l` w/ no containers
We also need to rework container/image inspect to be separate, but that can happen in another PR. Fixes #6472 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
-rw-r--r--pkg/domain/infra/abi/containers.go6
-rw-r--r--test/e2e/inspect_test.go8
2 files changed, 12 insertions, 2 deletions
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go
index e982c7c11..7f606ed7c 100644
--- a/pkg/domain/infra/abi/containers.go
+++ b/pkg/domain/infra/abi/containers.go
@@ -44,8 +44,10 @@ func getContainersAndInputByContext(all, latest bool, names []string, runtime *l
ctrs, err = runtime.GetAllContainers()
case latest:
ctr, err = runtime.GetLatestContainer()
- rawInput = append(rawInput, ctr.ID())
- ctrs = append(ctrs, ctr)
+ if err == nil {
+ rawInput = append(rawInput, ctr.ID())
+ ctrs = append(ctrs, ctr)
+ }
default:
for _, n := range names {
ctr, e := runtime.LookupContainer(n)
diff --git a/test/e2e/inspect_test.go b/test/e2e/inspect_test.go
index 77cfe4fd3..786f8fbb0 100644
--- a/test/e2e/inspect_test.go
+++ b/test/e2e/inspect_test.go
@@ -171,4 +171,12 @@ var _ = Describe("Podman inspect", func() {
Expect(imageData[0].HealthCheck.Interval).To(BeNumerically("==", 60000000000))
Expect(imageData[0].HealthCheck.Test).To(Equal([]string{"CMD-SHELL", "curl -f http://localhost/ || exit 1"}))
})
+
+ It("podman inspect --latest with no container fails", func() {
+ SkipIfRemote()
+
+ session := podmanTest.Podman([]string{"inspect", "--latest"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Not(Equal(0)))
+ })
})