Change binLen to pointer in hex2bin and base642bin - #84
Merged
Conversation
…ned is needed to trim the array, change hexEnd and b64End to pointers as well, as otherwise the JVM would crash when attempting to write to address supplied by the preiously primitive byte parameter
Contributor
|
Wow, thank you so much for this! Thanks for the tests too! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Libsodium hex2bin and base642bin expect a pointer to binLen and hexEnd/b64End parameters. Links to libsodium source:
The binLen values are needed to calcualte correct size after conversion.
the hexEnd and b64End values are used by libsodium to store pointers to the next byte after the last parsed byte. Since it was previously just a byte parameter, libsodium would treat it as a address and try to write to that adrress causing JVM to crash
Also added tests to cover base64 and hex use cases.
This fixes #83