Fix Base64OutStream portability issue #4668
Merged
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 #4660
On ARM, char is unsigned by default while on x86 it is signed by default. On ARM, this causes the logic in
Base64OutStream::Finish
to incorrectly add a char with value of 255 to the end of every b64 string. Fix is to use int for the endchar. Alternatively we could explicitly usesigned char
.https://www.linuxtopia.org/online_books/an_introduction_to_gcc/gccintro_71.html