Skip to content

Fix dnsthread wakeup-listener registration race - #454

Closed
tokenjunkielabs wants to merge 40 commits into
Tarsnap:masterfrom
tokenjunkielabs:zz-sol-skein/spiped-438-recovery
Closed

tokenjunkielabs wants to merge 40 commits into
Tarsnap:masterfrom
tokenjunkielabs:zz-sol-skein/spiped-438-recovery

Conversation

@tokenjunkielabs

Copy link
Copy Markdown

Fixes #438.

Register the DNS wakeup listener before marking the worker as having work and before signalling it. If listener registration fails, unwind without handing work to the resolver thread. If pthread_cond_signal() fails, unregister the listener and restore request state/address ownership so no stale completion byte or abandoned resolution can corrupt the next request.

This publishes the already-completed contributor fix while preserving the first-reporter bounty lane for @woahwhattheheck.

* Fix -r/-R mutual exclusion

* Test -r/-R default-value conflict
Reject explicitly contradictory -r / -R command lines based on option presence and add a focused regression.
…zero-timeout-defaults-20260912

Preserve explicit zero CLI values when applying defaults
ci: cancel superseded pull-request runs
Reject NaN re-resolution intervals
Reject truncated encrypted final frames as connection errors
Fail closed on Coverity download/script failures, pin checkout, disable persisted credentials, and declare read-only contents permissions. Exact-head Compile & test run 34737119346 passed on macOS and Ubuntu.
Keep stale pull-request cancellation while making independent workflow_dispatch runs use distinct run IDs.
Preserve canonical Tarsnap#10's pinned/read-only/bounded Coverity bootstrap while restricting the URL and redirects to HTTPS, executing from a unique temporary file, and cleaning it on shell exit. Exact live-head Compile & test run 34738098973 passed; fresh master fence is ahead-only with exactly coverity-scan.yml.
Adapt the semantic fix from Tarsnap#450 onto current fork master while preserving the fork's existing NaN and -r/-R fixes. Reject non-finite intervals and values above 1e9 seconds; add focused CLI regression coverage.
…ange-449

fix(spiped): bound DNS re-resolution interval
…o-crypt-stack-wipe-20260913

proto_crypt: clear remaining stack buffers
Wipe handshake_cookie, including ephemeral DH private/key material, immediately before each free across failure, unwind, success, and explicit cancellation paths.
…rsnap#20)

Exact-head Compile & test passed. Fresh graph fence confirms the two intervening master commits touch only proto_handshake/events_timer/test paths; the carrier touches only lib/util/pthread_create_blocking_np.c.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

[bug bounty] dnsthread_resolveone() abandons a running resolution if the wakeup listener fails to register

2 participants