Bug #9752

r45598 causes Errno::EINVAL on Solaris

Added by ngoto (Naohisa Goto) about 6 years ago. Updated about 6 years ago.

Target version:
ruby -v:
ruby 2.2.0dev (2014-04-17) [sparc64-solaris2.10]


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.

Updated by djberg96 (Daniel Berger) about 6 years ago

Is this a Solaris issue specifically? Or is this broken on other commercial platforms as well, like AIX and HP-UX?

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r45615. rb_cv_getcwd_malloc

  • (rb_cv_getcwd_malloc): check if getcwd allocates buffer if NULL is given [ruby-core:62072] [Bug #9752]

Updated by usa (Usaku NAKAMURA) about 6 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED

Also available in: Atom PDF