aboutsummaryrefslogtreecommitdiffstats
path: root/services/packages
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2023-10-25 21:24:24 +0200
committerGitHub <noreply@github.com>2023-10-25 21:24:24 +0200
commitab3f6c1bac04ea43541d9abd5e7c21a67b0f6deb (patch)
tree14830db21625882479bd2bf4991e71d2dc153fee /services/packages
parent46dd02702d29548c4de3e55842faa5694ef69b8a (diff)
downloadgitea-ab3f6c1bac04ea43541d9abd5e7c21a67b0f6deb.tar.gz
gitea-ab3f6c1bac04ea43541d9abd5e7c21a67b0f6deb.zip
Close all hashed buffers (#27787)
Add missing `.Close()` calls. The current code does not delete the temporary files if the data grows over 32mb.
Diffstat (limited to 'services/packages')
-rw-r--r--services/packages/alpine/repository.go3
-rw-r--r--services/packages/debian/repository.go10
-rw-r--r--services/packages/rpm/repository.go5
3 files changed, 18 insertions, 0 deletions
diff --git a/services/packages/alpine/repository.go b/services/packages/alpine/repository.go
index eeda0cca7b..46093d5bdd 100644
--- a/services/packages/alpine/repository.go
+++ b/services/packages/alpine/repository.go
@@ -238,6 +238,8 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package
}
unsignedIndexContent, _ := packages_module.NewHashedBuffer()
+ defer unsignedIndexContent.Close()
+
h := sha1.New()
if err := writeGzipStream(io.MultiWriter(unsignedIndexContent, h), "APKINDEX", buf.Bytes(), true); err != nil {
@@ -275,6 +277,7 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package
}
signedIndexContent, _ := packages_module.NewHashedBuffer()
+ defer signedIndexContent.Close()
if err := writeGzipStream(
signedIndexContent,
diff --git a/services/packages/debian/repository.go b/services/packages/debian/repository.go
index 25fa807351..1cc687ec87 100644
--- a/services/packages/debian/repository.go
+++ b/services/packages/debian/repository.go
@@ -196,11 +196,16 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
}
packagesContent, _ := packages_module.NewHashedBuffer()
+ defer packagesContent.Close()
packagesGzipContent, _ := packages_module.NewHashedBuffer()
+ defer packagesGzipContent.Close()
+
gzw := gzip.NewWriter(packagesGzipContent)
packagesXzContent, _ := packages_module.NewHashedBuffer()
+ defer packagesXzContent.Close()
+
xzw, _ := xz.NewWriter(packagesXzContent)
w := io.MultiWriter(packagesContent, gzw, xzw)
@@ -323,6 +328,8 @@ func buildReleaseFiles(ctx context.Context, ownerID int64, repoVersion *packages
}
inReleaseContent, _ := packages_module.NewHashedBuffer()
+ defer inReleaseContent.Close()
+
sw, err := clearsign.Encode(inReleaseContent, e.PrivateKey, nil)
if err != nil {
return err
@@ -367,11 +374,14 @@ func buildReleaseFiles(ctx context.Context, ownerID int64, repoVersion *packages
sw.Close()
releaseGpgContent, _ := packages_module.NewHashedBuffer()
+ defer releaseGpgContent.Close()
+
if err := openpgp.ArmoredDetachSign(releaseGpgContent, e, bytes.NewReader(buf.Bytes()), nil); err != nil {
return err
}
releaseContent, _ := packages_module.CreateHashedBufferFromReader(&buf)
+ defer releaseContent.Close()
for _, file := range []struct {
Name string
diff --git a/services/packages/rpm/repository.go b/services/packages/rpm/repository.go
index 93d9e41ca8..1d0dc83cae 100644
--- a/services/packages/rpm/repository.go
+++ b/services/packages/rpm/repository.go
@@ -258,11 +258,14 @@ func buildRepomd(ctx context.Context, pv *packages_model.PackageVersion, ownerID
}
repomdAscContent, _ := packages_module.NewHashedBuffer()
+ defer repomdAscContent.Close()
+
if err := openpgp.ArmoredDetachSign(repomdAscContent, e, bytes.NewReader(buf.Bytes()), nil); err != nil {
return err
}
repomdContent, _ := packages_module.CreateHashedBufferFromReader(&buf)
+ defer repomdContent.Close()
for _, file := range []struct {
Name string
@@ -548,6 +551,8 @@ func (wc *writtenCounter) Written() int64 {
func addDataAsFileToRepo(ctx context.Context, pv *packages_model.PackageVersion, filetype string, obj any) (*repoData, error) {
content, _ := packages_module.NewHashedBuffer()
+ defer content.Close()
+
gzw := gzip.NewWriter(content)
wc := &writtenCounter{}
h := sha256.New()