Skip to content

fix(receive): guard wallet-address rendering against RangeError on short input#673

Open
joshuakrueger-dfx wants to merge 1 commit into
RealUnitCH:developfrom
joshuakrueger-dfx:joshua/fix-657-p6-qr-substring
Open

fix(receive): guard wallet-address rendering against RangeError on short input#673
joshuakrueger-dfx wants to merge 1 commit into
RealUnitCH:developfrom
joshuakrueger-dfx:joshua/fix-657-p6-qr-substring

Conversation

@joshuakrueger-dfx
Copy link
Copy Markdown
Collaborator

Addresses Issue #657 — Part 6, finding F1 (HIGH, crash).

Problem

QRAddressWidget sliced the address with fixed indices (substring(0,6) / (6,21) / (21,36) / (36)). Any address shorter than 36 chars → RangeError crash on both Receive and Settings → Wallet address.

Fix

Replace the raw slices with a length-clamping _slice helper. A full 0x-address groups into the identical chunks as before; a short or empty address renders gracefully.

Tests (RED→GREEN, proven)

New widget regression: short address 0x1234 and empty address both render with takeException() == null — fails on the old code (verified), passes with the fix. Suite green (5/5), flutter analyze clean.

🤖 Big Brother fleet flagged + hand-finished at the operator test-authorization boundary. Ref #657.

…ort input

QRAddressWidget sliced the address with fixed indices (substring 0,6 / 6,21
/ 21,36 / 36), which threw a RangeError for any address shorter than 36
characters — crashing both the Receive screen and Settings → Wallet address.
Replace the raw slices with a length-clamping helper: a full 0x-address still
groups into the same chunks, while a short or empty address renders
gracefully instead of crashing.

Regression: test/screens/receive/widgets/qr_address_widget_test.dart
("renders a short/unexpected address without a RangeError")

Issue RealUnitCH#657 — Part 6, finding F1 (HIGH, crash).
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