the value at its top. This fixes a reference leak.
(PUSH_REF): Perform `pstate->top++' after setting the next stack
slot to make the code clearer. (Thanks to Ludovic Courtès for
this patch.)
available and appropriate. This fixes some type problems on
systems (recent linux) where int wasn't quite right. If
HAVE_SOCKLEN_T isn't defined, then revert to int. This is a
short-term fix, local to socket.c, and will be addressed more
generally in the next major release.
(ipv6_net_to_num): Change the argument type from "const char *" to
"const unsigned char *" to match the sign of the s6_addr type.
(ipv6_num_to_net): Change the argument type from "const char *" to
"const unsigned char *" to match its usage.
(s_scm_inet_pton): Use unsigned type when calling ipv6_net_to_num.
(s_scm_inet_ntop): Use unsigned type when calling ipv6_net_to_num.
(s_scm_getsockopt): Use scm_socklen_t rather than int.
(s_scm_accept): Use socklen_t rather than int.
(s_scm_getsockname): Use socklen_t rather than int.
(s_scm_getpeername): Use socklen_t rather than int.
(s_scm_recvfrom): Use socklen_t rather than int.
L_ctermid for the ctermid() result rather than passing NULL and
expecting a static pointer. This fixes a problem caused when
glibc sets a __nonnull attribute for ctermid() whenever
__USE_XOPEN is defined.
Fixes srfi-13 string-index segv on strings containing 8-bit
characters, reported by Alexey Voinov.
* chars.h (SCM_MAKE_CHAR): add (unsigned char) cast. This prevents
havoc when hi-bit ASCII is subjected to SCM_MAKE_CHAR().
./pre-inst-guile (actually ./.libs/lt-guile) from failing on some
architectures. The unconfirmed suspicion is that this is some
problem with autotools (automake, autoconf, and/or libtool) since
libguile already includes a libguile-ltdl.la dependency.
bases other than 2, 10, 16. This avoids overflows, in particular in
octal string->number and constants (other bases are undocumented, but
reach here so may as well work).
"blen >= j" not "blen > j", since after blen++ the k<blen loop will
have k==j which is past the end of the j length array and overwrites
data, leading to segvs in certain circumstances. And put the test
only before the blen++, which is the only place it can overflow, and
since we can legitimately get to blen==j with t2==0 when filling the
high word of the bignum.