Skip to content

Fix Unicode values in external settings - #659

Draft
Jacksper13 wants to merge 2 commits into
dev-v2.4.0from
fix/unicode-settings-save
Draft

Fix Unicode values in external settings#659
Jacksper13 wants to merge 2 commits into
dev-v2.4.0from
fix/unicode-settings-save

Conversation

@Jacksper13

@Jacksper13 Jacksper13 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

## Summary

  • encode serialized external settings as UTF-8 before calculating capacity and padding
  • reject oversized settings before selecting or modifying a flash slot
  • distinguish genuine settings-capacity failures from unexpected save failures
  • add save/load coverage for Korean and smart-quote multisig names and slot-size boundaries

Root cause

`ExtSettings.save_impl()` calculated padding with the character length of the JSON string, while AES encryption wrote its UTF-8 bytes. Multibyte names therefore caused more bytes to be written than the fixed slot allowed, and the final checksum write asserted.

The encoded payload is unchanged, so existing settings remain compatible and no storage migration is required.

Fixes #658

@Jacksper13
Jacksper13 marked this pull request as ready for review August 7, 2026 13:58
@Jacksper13
Jacksper13 marked this pull request as draft August 7, 2026 14:08
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.

Passport Core v2.3.11: Unicode multisig wallet name causes settings.save() AssertionError and misleading "Out of space" error

1 participant