SettingsHandler: Always decode the whole settings.txt file #8680
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes https://bugs.dolphin-emu.org/issues/12019
Related to https://bugs.dolphin-emu.org/issues/11930 and to #8673 and #8670
The encrypted settings.txt can contain nullbytes - it's a binary file. The old code assumed a null byte means "end of file". That's not the case - for some files, the current code stops parsing in the middle of the file. (That took me a while to figure out ...)
This approach decrypts the junk data at the end of the file, too, but because the valid data always ends with a newline, all the junk ends up on new line(s) at the end, meaning, the parsing code should just ignore that junk. The decrypted data unfortunately doesn't end with a null byte, and we don't know the length of the decrypted data, so I don't see any way to detect and remove that junk data.
Please merge this prior to #8673.