use SSize_t for string offsets instead of int or socklen_t
Note: while I discovered the incorrect types while investigating [perl
described in that report, so I don't consider this a fix for that bug.
Unfortunately to test this change I'd need a scalar at least 2G in
size, which unreasonable for a test we run on each install.
Tested manually on a machine with plenty of memory:
Before:
[tonyc@dromedary perl]$ echo foo | ./perl -le '$x = ""; read(STDIN, $x, 4,
5000000000); print length $x'
705032708
After:
[tonyc@dromedary perl]$ echo foo | ./perl -le '$x = ""; read(STDIN, $x, 4,
5000000000); print length $x'
5000000004