Skip to content

Commit

Permalink
Filesystem builder produces invalid structures if filename contains U…
Browse files Browse the repository at this point in the history
…TF8-encoded characters. (#2945)

The FWFS filesystem builder (python) produces invalid structures if filename contains UTF8-encoded characters. The length was based on the uncounted text (uni code) so will be smaller than the actual filename.

For example, `CharactersÄÖÜß.txt` is 18 unicode characters, but Ä, Ö, Ü and ß each require two bytes when encoded as UTF8 so stores 22 characters. The FWFS structures store this as a counted string with length 18 so the extraneous 4 bytes are interpreted as part of the following data which results in an unreadable filesystem image. This PR fixes the length calculation using the encoded text.

Note that the IFS C++ code treats filenames as opaque binary strings so is not affected by this bug.
  • Loading branch information
mikee47 authored Feb 10, 2025
1 parent aa91b31 commit ddcd288
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion Sming/Components/IFS

0 comments on commit ddcd288

Please sign in to comment.