Fix RPM resource leak (#31794)

Fixes a resource leak introduced by #27069.

- add defer
- move sign code out of `repository.go`
This commit is contained in:
KN4CK3R 2024-08-08 11:43:04 +02:00 committed by GitHub
parent de2787a493
commit 3862b31abb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 44 additions and 36 deletions

View file

@ -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)