r45598 causes Errno::EINVAL on Solaris
On Solaris, after r45598, the following error occurs.
./miniruby: Invalid argument - getcwd (Errno::EINVAL)
It seems that getcwd(NULL, 0) is not supported in Solaris.
The Solaris man page of getcwd(3c) says:
If buf is a null pointer, getcwd() obtains size bytes of
space using malloc(3C). The pointer returned by getcwd() can
be used as the argument in a subsequent call to free().
But no description when the size is zero.