rbnacl: fix byffer size type in randombytes_buf binding #174
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.
https://github.com/jedisct1/libsodium/blob/master/src/libsodium/include/sodium/randombytes.h#L35
defines
randombytes_buf
buffer size assize_t
:but rbnacl defines it as
unsigned long long
:This manifests as an error on 32-bit big-endian platforms because
size_t
is 32-bit there and
unsigned long long
is 64-bit.I've found it as a testsuite crash on powerpc32:
Note how
randombytes_sysrandom_buf
accepts bigsize=258618072
.The fix is simple: use
:size_t
from ruby's ffi package instead.This change makes all tests pass on powerpc32.
Signed-off-by: Sergei Trofimovich slyfox@gentoo.org