Skip to content

fix: add and leverage helper functions for [safely] setting capacity#2318

Merged
egibs merged 1 commit intochainguard-dev:mainfrom
egibs:length-validation
Jan 29, 2026
Merged

fix: add and leverage helper functions for [safely] setting capacity#2318
egibs merged 1 commit intochainguard-dev:mainfrom
egibs:length-validation

Conversation

@egibs
Copy link
Member

@egibs egibs commented Jan 29, 2026

Follow-up for #2317

When setting slice capacity, we usually try to anticipate this by using the length of another map/slice value. While these are usually closer to zero as opposed to math.MaxInt, we should still have a convenient way of doing this safely that doesn't involve copy-pasted boilerplate for each instance.

Signed-off-by: egibs <20933572+egibs@users.noreply.github.com>
@egibs egibs requested a review from stevebeattie January 29, 2026 18:42
@antitree antitree assigned antitree and stevebeattie and unassigned antitree Jan 29, 2026
Copy link
Member

@stevebeattie stevebeattie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks for adding unit tests.

@egibs egibs merged commit ae3c12f into chainguard-dev:main Jan 29, 2026
61 checks passed
@egibs egibs deleted the length-validation branch January 30, 2026 15:33
jonjohnsonjr added a commit to jonjohnsonjr/melange that referenced this pull request Jan 30, 2026
…apacity (chainguard-dev#2318)"

This reverts commit ae3c12f.

This package adds unnecessary noise around a very common operation.

If a melange program actually has anywhere close to `math.MaxInt` values
of anything, we're never going to actually finish executing it, or we'll
run out of memory pretty quickly.

Go is a memory safe language. If you attempt to allocate a slice with
negative capacity, it will panic, which is the only reasonable thing to
do. Attempting to "safely" allocate, instead, `math.MaxInt` of anything
just delays the problem very slightly. If we actually need that
capacity, we're not going to be able to execute the program.

Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
jonjohnsonjr added a commit that referenced this pull request Jan 30, 2026
…apacity (#2318)" (#2320)

This reverts commit ae3c12f.

This package adds unnecessary noise around a very common operation.

If a melange program actually has anywhere close to `math.MaxInt` values
of anything, we're never going to actually finish executing it, or we'll
run out of memory pretty quickly.

Go is a memory safe language. If you attempt to allocate a slice with
negative capacity, it will panic, which is the only reasonable thing to
do. Attempting to "safely" allocate, instead, `math.MaxInt` of anything
just delays the problem very slightly. If we actually need that
capacity, we're not going to be able to execute the program.

Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants