[#8136] Confused exception handling in Continuation Context — "Robert Dober" <robert.dober@...>

Hi all

13 messages 2006/07/06

[#8248] One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...>

I just posted this to ruby-talk. But I would also like to discuss this

33 messages 2006/07/18
[#8264] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

From my experience using both tool chains on Windows (for the ruby-prof

[#8266] Re: One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...> 2006/07/19

Tim, I'm going to top reply since your post was so long. I'm interested in

[#8267] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

> Tim, I'm going to top reply since your post was so long. I'm interested in

[#8271] my sandboxing extension!! — why the lucky stiff <ruby-core@...>

I have (what feels like) very exciting news. I finally sat down to code up my

17 messages 2006/07/19

[#8430] Re: doc patch: weakref. — "Berger, Daniel" <Daniel.Berger@...>

> -----Original Message-----

19 messages 2006/07/28
[#8434] Re: doc patch: weakref. — Yukihiro Matsumoto <matz@...> 2006/07/29

Hi,

[#8436] Re: doc patch: weakref. — Daniel Berger <djberg96@...> 2006/07/29

Yukihiro Matsumoto wrote:

[#8437] Re: doc patch: weakref. — Mauricio Fernandez <mfp@...> 2006/07/29

On Sat, Jul 29, 2006 at 07:37:24PM +0900, Daniel Berger wrote:

[#8441] Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...>

I have the following code:

18 messages 2006/07/30
[#8442] Re: Inconsistency in scoping during module_eval? — nobu@... 2006/07/30

Hi,

[#8443] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/30

Why does this:

[#8445] Re: Inconsistency in scoping during module_eval? — Yukihiro Matsumoto <matz@...> 2006/07/30

Hi,

[#8454] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/31

So to clarify...

Re: Patch for Unix socket peer credentials

From: Eric Hodel <drbrain@...7.net>
Date: 2006-07-19 18:02:19 UTC
List: ruby-core #8296
On Jul 19, 2006, at 10:40 AM, James F. Hranicky wrote:

> On Tuesday 18 July 2006 15:52, Eric Hodel wrote:
>
>>> +    if (uid < 0 || gid < 0)
>>> +        rb_raise(rb_eSocket, "Invalid credentials: uid %d, gid %
>>> d", uid, gid);
>>
>> Negative UID and GID are valid on some operating systems.
>
> Are negative values allowed on Linux? AFAICT, if the credentials  
> aren't
> available on Linux, say when I check a TCPServer socket's credentials
> after accepting a connection from another host, the system call  
> returns
> 0 but sets the uid & gid to -1:
>
>    ruby -rsocket -e 'p TCPServer.new(ARGV.shift).accept.peer_cred'  
> 5670
>    {:ruid=>nil, :rgid=>nil, :uid=>-1, :gid=>-1, :euid=>-1, :egid=>-1}
>
> If negative values are allowed, I really don't know what to do,  
> otherwise,
> I can raise an exception. I can also just leave it to the user to  
> raise an
> execption if e.g. Etc.getpwuid(creds[:uid]) fails.
>
> Attached is the latest patch.
>
> Questions/comments welcome.

On FreeBSD uid_t and gid_t are unsigned integers.  Searching google  
for 'negative uid' reveals that other operating systems also allow  
negative uids.

I don't have a Linux system, but I found a socket(7) man page that says:

> SO_PEERCRED
>
> Return the credentials of the foreign process connected to this  
> socket. This is only possible for connected PF_UNIX stream sockets  
> and PF_UNIX stream and datagram socket pairs created using  
> socketpair(2); see unix(7). The returned credentials are those that  
> were in effect at the time of the call to connect(2) or socketpair 
> (2). Argument is a ucred structure. Only valid as a getsockopt().

The man page doesn't say what happens if you use SO_PEERCRED on a non- 
PF_UNIX socket, so I think you need to check first and raise an  
exception if it is the wrong socket type.

-- 
Eric Hodel - drbrain@segment7.net - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com



In This Thread