• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

elixir-mint / mint / 6f91efe05cc1abf0cfad78ed2efc5f28b99a7a97-PR-533
91%
main: 91%

Build:
Build:
LAST BUILD BRANCH: fuzz-http1-transfer-codings
DEFAULT BRANCH: main
Ran 16 Oct 2026 01:07PM UTC
Jobs 1
Files 22
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Sep 2026 02:58PM UTC coverage: 90.566% (+0.1%) from 90.426%
6f91efe05cc1abf0cfad78ed2efc5f28b99a7a97-PR-533

Pull #533

github

ericmj
Validate the target of promised requests

A PUSH_PROMISE was accepted as long as its :scheme and :authority were
non-empty and its :path started with "/", so promises with
:authority "user@localhost" or "localhost:abc", :path "/a b" or
"/a#fragment", or :scheme "1https" were returned as :push_promise
responses. RFC 9113 8.4.1 has the client reset a promised stream whose
request is malformed with PROTOCOL_ERROR.

The :scheme is checked against the RFC 3986 3.1 scheme grammar.

The :authority is parsed as RFC 3986 3.2 [ userinfo "@" ] host
[ ":" port ], where the host is an IP-literal or a reg-name and the port
is zero or more digits. An IP-literal is an IPvFuture or an IPv6
address, optionally followed by "%25" and an RFC 6874 zone ID made of
unreserved and percent-encoded characters. The IPv6 address must be made
of HEXDIG, ":" and "." characters and is then checked with
:inet.parse_ipv6strict_address/1, which on its own accepts a zone ID
after a bare "%" and signs in embedded IPv4 octets. RFC 9113 8.3.1
forbids userinfo for the http and https schemes, and RFC 9110 4.2.1 and
4.2.2 forbid an empty host for them, so ":443" or "@localhost" is
rejected for those schemes. Both checks compare the scheme
case-insensitively, and other schemes keep accepting userinfo and an
empty host. An :authority that is entirely empty is rejected for every
scheme, as before.

The :path is checked as an RFC 9110 absolute-path with an optional
query (RFC 9113 8.3.1), made of pchar, "/" and "?" characters with valid
percent-encoding.
Pull Request #533: Validate the target of promised requests

39 of 41 new or added lines in 1 file covered. (95.12%)

1824 of 2014 relevant lines covered (90.57%)

726.63 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
95.29
-0.01% lib/mint/http2.ex
Jobs
ID Job ID Ran Files Coverage
1 6f91efe05cc1abf0cfad78ed2efc5f28b99a7a97-PR-533.1 16 Oct 2026 01:07PM UTC 22
90.57
GitHub Action Run
Source Files on build 6f91efe05cc1abf0cfad78ed2efc5f28b99a7a97-PR-533
  • Tree
  • List 22
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #533
  • PR Base - http2-header-list-size-docs (#338CF40B...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc