Skip to content

Commit ab3f6c1

Browse files
authored
Close all hashed buffers (#27787)
Add missing `.Close()` calls. The current code does not delete the temporary files if the data grows over 32mb.
1 parent 46dd027 commit ab3f6c1

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

modules/packages/hashed_buffer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func NewHashedBuffer() (*HashedBuffer, error) {
3232
return NewHashedBufferWithSize(DefaultMemorySize)
3333
}
3434

35-
// NewHashedBuffer creates a hashed buffer with a specific memory size
35+
// NewHashedBufferWithSize creates a hashed buffer with a specific memory size
3636
func NewHashedBufferWithSize(maxMemorySize int) (*HashedBuffer, error) {
3737
b, err := filebuffer.New(maxMemorySize)
3838
if err != nil {

services/packages/alpine/repository.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package
238238
}
239239

240240
unsignedIndexContent, _ := packages_module.NewHashedBuffer()
241+
defer unsignedIndexContent.Close()
242+
241243
h := sha1.New()
242244

243245
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
275277
}
276278

277279
signedIndexContent, _ := packages_module.NewHashedBuffer()
280+
defer signedIndexContent.Close()
278281

279282
if err := writeGzipStream(
280283
signedIndexContent,

services/packages/debian/repository.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,16 @@ func buildPackagesIndices(ctx context.Context, ownerID int64, repoVersion *packa
196196
}
197197

198198
packagesContent, _ := packages_module.NewHashedBuffer()
199+
defer packagesContent.Close()
199200

200201
packagesGzipContent, _ := packages_module.NewHashedBuffer()
202+
defer packagesGzipContent.Close()
203+
201204
gzw := gzip.NewWriter(packagesGzipContent)
202205

203206
packagesXzContent, _ := packages_module.NewHashedBuffer()
207+
defer packagesXzContent.Close()
208+
204209
xzw, _ := xz.NewWriter(packagesXzContent)
205210

206211
w := io.MultiWriter(packagesContent, gzw, xzw)
@@ -323,6 +328,8 @@ func buildReleaseFiles(ctx context.Context, ownerID int64, repoVersion *packages
323328
}
324329

325330
inReleaseContent, _ := packages_module.NewHashedBuffer()
331+
defer inReleaseContent.Close()
332+
326333
sw, err := clearsign.Encode(inReleaseContent, e.PrivateKey, nil)
327334
if err != nil {
328335
return err
@@ -367,11 +374,14 @@ func buildReleaseFiles(ctx context.Context, ownerID int64, repoVersion *packages
367374
sw.Close()
368375

369376
releaseGpgContent, _ := packages_module.NewHashedBuffer()
377+
defer releaseGpgContent.Close()
378+
370379
if err := openpgp.ArmoredDetachSign(releaseGpgContent, e, bytes.NewReader(buf.Bytes()), nil); err != nil {
371380
return err
372381
}
373382

374383
releaseContent, _ := packages_module.CreateHashedBufferFromReader(&buf)
384+
defer releaseContent.Close()
375385

376386
for _, file := range []struct {
377387
Name string

services/packages/rpm/repository.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,14 @@ func buildRepomd(ctx context.Context, pv *packages_model.PackageVersion, ownerID
258258
}
259259

260260
repomdAscContent, _ := packages_module.NewHashedBuffer()
261+
defer repomdAscContent.Close()
262+
261263
if err := openpgp.ArmoredDetachSign(repomdAscContent, e, bytes.NewReader(buf.Bytes()), nil); err != nil {
262264
return err
263265
}
264266

265267
repomdContent, _ := packages_module.CreateHashedBufferFromReader(&buf)
268+
defer repomdContent.Close()
266269

267270
for _, file := range []struct {
268271
Name string
@@ -548,6 +551,8 @@ func (wc *writtenCounter) Written() int64 {
548551

549552
func addDataAsFileToRepo(ctx context.Context, pv *packages_model.PackageVersion, filetype string, obj any) (*repoData, error) {
550553
content, _ := packages_module.NewHashedBuffer()
554+
defer content.Close()
555+
551556
gzw := gzip.NewWriter(content)
552557
wc := &writtenCounter{}
553558
h := sha256.New()

0 commit comments

Comments
 (0)