mirror of
https://github.com/containers/podman.git
synced 2025-06-20 00:51:16 +08:00
Merge pull request #6447 from baude/v2apitarleak
Fix leak of empty tarball
This commit is contained in:
@ -181,6 +181,12 @@ func ExportImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
|
errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
name := utils.GetName(r)
|
||||||
|
newImage, err := runtime.ImageRuntime().NewFromLocal(name)
|
||||||
|
if err != nil {
|
||||||
|
utils.ImageNotFound(w, name, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
switch query.Format {
|
switch query.Format {
|
||||||
case define.OCIArchive, define.V2s2Archive:
|
case define.OCIArchive, define.V2s2Archive:
|
||||||
tmpfile, err := ioutil.TempFile("", "api.tar")
|
tmpfile, err := ioutil.TempFile("", "api.tar")
|
||||||
@ -204,13 +210,6 @@ func ExportImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
utils.Error(w, "unknown format", http.StatusInternalServerError, errors.Errorf("unknown format %q", query.Format))
|
utils.Error(w, "unknown format", http.StatusInternalServerError, errors.Errorf("unknown format %q", query.Format))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
name := utils.GetName(r)
|
|
||||||
newImage, err := runtime.ImageRuntime().NewFromLocal(name)
|
|
||||||
if err != nil {
|
|
||||||
utils.ImageNotFound(w, name, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := newImage.Save(r.Context(), name, query.Format, output, []string{}, false, query.Compress); err != nil {
|
if err := newImage.Save(r.Context(), name, query.Format, output, []string{}, false, query.Compress); err != nil {
|
||||||
utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest, err)
|
utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest, err)
|
||||||
return
|
return
|
||||||
|
@ -179,7 +179,7 @@ var _ = Describe("Podman images", func() {
|
|||||||
It("podman images filter before image", func() {
|
It("podman images filter before image", func() {
|
||||||
SkipIfRemote()
|
SkipIfRemote()
|
||||||
dockerfile := `FROM docker.io/library/alpine:latest
|
dockerfile := `FROM docker.io/library/alpine:latest
|
||||||
RUN apk update && apk add man
|
RUN apk update && apk add strace
|
||||||
`
|
`
|
||||||
podmanTest.BuildImage(dockerfile, "foobar.com/before:latest", "false")
|
podmanTest.BuildImage(dockerfile, "foobar.com/before:latest", "false")
|
||||||
result := podmanTest.Podman([]string{"images", "-q", "-f", "before=foobar.com/before:latest"})
|
result := podmanTest.Podman([]string{"images", "-q", "-f", "before=foobar.com/before:latest"})
|
||||||
|
Reference in New Issue
Block a user