aboutsummaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2024-08-08 11:43:04 +0200
committerGitHub <noreply@github.com>2024-08-08 09:43:04 +0000
commit3862b31abb0fcc094e9d042a7093b8bb3af9f885 (patch)
treecf40142db98ace7b69c4efea6c16cdf143239355 /routers
parentde2787a4939ffdc11184a2115289cfb097272ba2 (diff)
downloadgitea-3862b31abb0fcc094e9d042a7093b8bb3af9f885.tar.gz
gitea-3862b31abb0fcc094e9d042a7093b8bb3af9f885.zip
Fix RPM resource leak (#31794)
Fixes a resource leak introduced by #27069. - add defer - move sign code out of `repository.go`
Diffstat (limited to 'routers')
-rw-r--r--routers/api/packages/rpm/rpm.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/routers/api/packages/rpm/rpm.go b/routers/api/packages/rpm/rpm.go
index 4c822e0999..a00a61c079 100644
--- a/routers/api/packages/rpm/rpm.go
+++ b/routers/api/packages/rpm/rpm.go
@@ -133,19 +133,20 @@ func UploadPackageFile(ctx *context.Context) {
}
defer buf.Close()
- // if rpm sign enabled
if setting.Packages.DefaultRPMSignEnabled || ctx.FormBool("sign") {
- pri, _, err := rpm_service.GetOrCreateKeyPair(ctx, ctx.Package.Owner.ID)
+ priv, _, err := rpm_service.GetOrCreateKeyPair(ctx, ctx.Package.Owner.ID)
if err != nil {
apiError(ctx, http.StatusInternalServerError, err)
return
}
- buf, err = rpm_service.SignPackage(buf, pri)
+ signedBuf, err := rpm_service.SignPackage(buf, priv)
if err != nil {
- // Not in rpm format, parsing failed.
apiError(ctx, http.StatusBadRequest, err)
return
}
+ defer signedBuf.Close()
+
+ buf = signedBuf
}
pck, err := rpm_module.ParsePackage(buf)