Skip to content

Release 3.1.1 - #51

Merged
czj merged 1 commit into
mainfrom
release/v3.1.1
Nov 7, 2026
Merged

czj merged 1 commit into
mainfrom
release/v3.1.1

Conversation

@czj

@czj czj commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Crafted request headers can no longer grow a process for good or make it raise.

Fixed

  • Version checks no longer fill RubyGems' process-wide Gem::Version cache: 20,000 user agents with unique macOS
    versions grew a process by 200 MB.
  • An Accept-Language header listing more than 32 languages is parsed on each request instead of cached: 1,000 such
    headers held 107 MB.
  • Bytes that are not valid UTF-8 in the user agent or the Accept-Language header become U+FFFD instead of raising
    ArgumentError, and such client hints and Cloudflare headers are ignored.
  • Browser.new checks the size of the user agent before reading it, so an oversized one is rejected in microseconds.

Once merged, bin/release tags the merge commit v3.1.1, which publishes the gem.

@czj
czj enabled auto-merge (squash) November 7, 2026 22:24
@czj
czj merged commit 2aea8ce into main Nov 7, 2026
16 checks passed
@czj
czj deleted the release/v3.1.1 branch November 7, 2026 22:25
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.

1 participant