Project

General

Profile

Feature #12410

Process.uid= validation and casting

Added by djberg96 (Daniel Berger) about 4 years ago. Updated over 3 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:75663]

Description

OSX 10.11.4
Ruby 2.2.x and 2.3.x

It seems that Ruby added the ability to use a string for Process.uid, which is nice. But, it has introduced inconsistency with regards to enforcement:

> Process.uid = 'bogus' # ArgumentError: can't find user for bogus
> Process.uid = 999999  # Does not raise an error, even though the uid is invalid

Also, it seems there's some sort of casting bug for negative values:

> Process.uid = -1 # -1
> Process.uid      # 0
> Process.uid = -2 # -2
> Process.uid      # 4294967294

While this is almost certainly an issue with the underlying C function (somewhat concerning), I think we should validate the values passed to Process.uid= (and similar methods) the same way we validate it for the string. Presumably a simple getpwuid check would work.

Also available in: Atom PDF