Skip to content

Develop#45

Merged
cvsouth merged 5 commits into
mainfrom
develop
May 25, 2026
Merged

Develop#45
cvsouth merged 5 commits into
mainfrom
develop

Conversation

@cvsouth
Copy link
Copy Markdown
Owner

@cvsouth cvsouth commented May 25, 2026

No description provided.

cvsouth added 5 commits May 8, 2026 15:15
Fixes govulncheck failures from GO-2026-4971 (net NUL byte panic) and
GO-2026-4918 (HTTP/2 SETTINGS_MAX_FRAME_SIZE infinite loop).
Circuit.Extend (EXTENDED2) and Circuit.ReceiveRelaySetup
(RENDEZVOUS_ESTABLISHED, INTRODUCE_ACK, RENDEZVOUS2) read from the
link's per-circuit channel without a deadline. A silent or
unresponsive relay/service therefore hangs setup indefinitely; in CI
this consumed the full 10-minute test budget on TestE2ECircuitRetry
before the first attempt's middle hop ever timed out.

receiveCreated2 already imposes 30s; the multiplexing rewrite that
moved cell reads onto channels (commit 30e9ad1) added that timeout but
missed the matching ones for EXTEND and onion setup.

Add a deadline-aware receiveRelayBefore helper, give Extend 30s, and
plumb a timeout through ReceiveRelaySetup (30s for
RENDEZVOUS_ESTABLISHED/INTRODUCE_ACK, 60s for RENDEZVOUS2 since the
service must build a circuit back). Add unit tests covering both the
timeout firing and the receiver-Done path.
Go 1.26.3 ships crypto/sha3 in the standard library, and govet's new
inline analyzer flags golang.org/x/crypto/sha3.New256 (now a thin
wrapper) for inlining. Switch all onion/*.go uses to stdlib, rename
NewShake256 -> NewSHAKE256, and discard hash Write return values
explicitly (errcheck no longer recognises the receiver as a
hash.Hash-equivalent default-excluded type).

x/crypto remains required for curve25519.
Comment thread onion/hsntor.go Dismissed
Comment thread onion/hsntor.go Dismissed
Comment thread onion/hsntor.go Dismissed
@cvsouth cvsouth merged commit 5e98675 into main May 25, 2026
5 checks passed
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.

2 participants