diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-06-01 18:00:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-01 18:00:56 +0200 |
commit | f559cec6c0d1694cca9530004aaba3c138f621e3 (patch) | |
tree | f2a100cbe7bedfc0485c71cfd33892bfc70f490b /pkg | |
parent | 2c6016f330b2738d2545f7d353244dfc8b239050 (diff) | |
parent | 8c1883721c28d09c5c3629db7e0d77344f5f7bd9 (diff) | |
download | podman-f559cec6c0d1694cca9530004aaba3c138f621e3.tar.gz podman-f559cec6c0d1694cca9530004aaba3c138f621e3.tar.bz2 podman-f559cec6c0d1694cca9530004aaba3c138f621e3.zip |
Merge pull request #6447 from baude/v2apitarleak
Fix leak of empty tarball
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/api/handlers/libpod/images.go | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/pkg/api/handlers/libpod/images.go b/pkg/api/handlers/libpod/images.go index 4b277d39c..54e202103 100644 --- a/pkg/api/handlers/libpod/images.go +++ b/pkg/api/handlers/libpod/images.go @@ -181,6 +181,12 @@ func ExportImage(w http.ResponseWriter, r *http.Request) { errors.Wrapf(err, "Failed to parse parameters for %s", r.URL.String())) return } + name := utils.GetName(r) + newImage, err := runtime.ImageRuntime().NewFromLocal(name) + if err != nil { + utils.ImageNotFound(w, name, err) + return + } switch query.Format { case define.OCIArchive, define.V2s2Archive: 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)) 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 { utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest, err) return |