[#8815] Segfault in libc strlen, via rb_str_new2 — "Sean E. Russell" <ser@...>

Howdy,

12 messages 2006/09/09
[#8817] Re: Segfault in libc strlen, via rb_str_new2 — Eric Hodel <drbrain@...7.net> 2006/09/09

On Sep 8, 2006, at 10:10 PM, Sean E. Russell wrote:

Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly

From: "Wilson Bilkovich" <wilsonb@...>
Date: 2006-09-21 02:07:55 UTC
List: ruby-core #8901
On 9/20/06, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> Hi,
>
> In message "Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly"
>     on Thu, 21 Sep 2006 03:13:06 +0900, <noreply@rubyforge.org> writes:
>
> |Initial Comment:
> |Try this (on a mac, to get the full reflection of the problem):
> |--
> |#!/usr/bin/env ruby
> |
> |require 'etc'
> |
> |p Etc.getpwnam('nobody')
> |p Etc.getpwuid(4294967294)
> |--
> |
> |Apparently OS X assigns -1 to nobody in some places, and ruby is hitting one of those places. However, the underlying problem seems to be that Etc can output a value in some of it's calls that it can't accept as a parameter.
>
> Would anybody report what happens when we run the above script on OSX?
> I'm not sure the exact situation.
>

Did something related to BigNum change in 1.8.5?
I've tried this on Linux and OS X using 1.8.4, and I get:
etc.rb:4:in `getpwuid': bignum too big to convert into `long' (RangeError)

Other than that, I'm not sure I understand the problem. The first call
returns what looks like a reasonable struct on both platforms.
uid/gid 65534 on Linux, -2 on OS X.

In This Thread