Repository navigation
fix(deps): update module github.com/go-gfx/gfx to v0.35.0 - #35
Merged
Merged
Conversation
tannevaled
force-pushed
the
renovate/deps
branch
from
October 10, 2026 20:30
50f95a3 to
8638636
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.34.1→v0.35.0Release Notes
go-gfx/gfx (github.com/go-gfx/gfx)
v0.35.0: — bound the surface and the embedded rasterCompare Source
A security release. Behaviour change:
svg.Rasterizenow returns an errorfor a surface past
Options.MaxPixels, which is why it is a minor rather thana patch. Callers wanting a larger canvas set
MaxPixels.An SVG is text, and two of the numbers in it decide allocations: the
document's own
width/height, and the dimensions an embedded<image href="data:…">declares in its header. A surface is four bytes a pixel.width="40000" height="40000"<image>claims 20000×20000⛔ Nothing about the size of either input hints at the size of the output — and
drawImageskips decode failures in silence, so the gigabyte was allocatedand nothing anywhere said so.
What the fix is
Options.MaxPixels, defaulting toDefaultMaxPixels= 40 000 000 pixels(a hundred and sixty million bytes) — the same ceiling
go-pdfkit/renderalready uses, so the fleet has one number for this rather than two.
image.DecodeConfig, before anything is decoded: a ceiling enforced afterthe allocation it bounds is not a ceiling, it is a comment;
int64— two numbers a file chose,multiplied in
inton a 32-bit build, is how a ceiling is passed byoverflowing past it (
386is in the build matrix);Scalecounts towards it: the surface is the product, and only one of thetwo numbers is ours.
Also
A
<line>whose two ends coincide was the module's single uncoveredstatement, and the 100 % gate passed anyway because the total rounds up across
seven packages. ⛔ A gate that passes by rounding will one day pass over a real
gap. Closed.
100 % statement coverage,
-racegreen, twelve CI checks across eightarchitectures, four mutations against the ceilings all caught.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.