Starting with glibc-2.17, the crypt() function will report an EINVAL
and return NULL when the format of the "salt" parameter is
invalid. The current tests for crypt() pass its result to strcmp(),
causing segfaults when the value returned from crypt() is NULL.
This commit modifies the test programs to exit with failure when
crypt() returns NULL.
Reference: https://bugs.gentoo.org/show_bug.cgi?id=518964
There has been a lot of discussion around whether arc4random should be included. Given how many different impementations of it are in the wild, we can't guarantee a secure implementation on all platforms.
Fix to_read, throw exception if syscall fails
Fixes thanks to feedback from sarnold at ##crypto on freenode
Correction on error conditions
Remove dead code (thanks @defuse)
It turns out getrandom can take >256, getentropy refuses.
Better semantics
Thanks @defuse for catching my silly mistake here
Cast to size_t to be explicit
Let's simplify the logic a bit
Let's be consistent; define everything before we do any logic
Continuously check that the file descriptor is still a valid one
Add device type check on fd initialization
and #68657 (Reading 4 byte floats with Mysqli and libmysqlclient
has rounding errors).
The patch removes support for Decimal floating point numbers and
now defaults to using similar logic as what libmysqlclient does:
convert a 4 byte floating point number into a string, and then the
string into a double. The quirks of MySQL are maintained as seen in
Field_Float::val_str()
and #68657 (Reading 4 byte floats with Mysqli and libmysqlclient
has rounding errors).
The patch removes support for Decimal floating point numbers and
now defaults to using similar logic as what libmysqlclient does:
convert a 4 byte floating point number into a string, and then the
string into a double. The quirks of MySQL are maintained as seen in
Field_Float::val_str()
modern versions in the same build chain. There are
simply too many broken things in 2.13 to make it work.
Cache handling is broken as well which is why I need
to revert the pdo_inc_path cache fix as well.
trunk is now 2.60+ only and I'll work on cleaning out
all the legacy cruft from there.
This simplifies things quite a bit by entirely getting
rid of the m4 diversions which were messing things up.
Now we are using the built-in autoconf diversions the
way they were intended and the HELP output order is
preserved through the AC_PRESERVE_HELP_ORDER macro
which was introduced in autoconf-2.59c
The next thing to clean up are the template warnings
and I want to get to the bottom of the cache warning
we generate as well. Now that I fixed the _cv_ stuff,
I am not sure that is still a valid warning.