Skip to content

Comments

Fix receipt cull logic and bytes edge case.#20

Merged
attermann merged 3 commits intoattermann:masterfrom
DanBeard:fix/bytes-and-transport-bugs
Feb 24, 2026
Merged

Fix receipt cull logic and bytes edge case.#20
attermann merged 3 commits intoattermann:masterfrom
DanBeard:fix/bytes-and-transport-bugs

Conversation

@DanBeard
Copy link
Contributor

  • Added check to truncate odd hex string so it doesn't read past buffer.
  • Fixed receipt cull logic so it will remove receipts to cull from _receipts list. This was causing a memory leak.
  • Added unit tests to test the fixes (with Claude code. I can remove these if you don't want to touch LLM code)

DanBeard and others added 3 commits February 9, 2026 23:46
- Bytes::assignHex/appendHex: truncate to even length before parsing
  to prevent reading past buffer on odd-length hex strings
- Bytes::mid(): fix off-by-one in bounds check (>= vs >)
- Transport: fix receipt culling loop iterating wrong list, which
  caused stale receipts to accumulate instead of being removed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests for Bytes::assignHex, appendHex, mid() edge cases, and
Transport receipt culling logic. 18 test cases covering the bugs
fixed in the previous commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Disabled `test_receipt_timeout_callback` test which is currently failing.
@attermann attermann merged commit 6d31c9c into attermann:master Feb 24, 2026
4 checks passed
@attermann
Copy link
Owner

Nice catches @DanBeard! Thanks for the contribution.

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