[#8484] strptime fails to properly parse certain inputs — <noreply@...>

Bugs item #5263, was opened at 2006-08-01 23:14

13 messages 2006/08/02
[#8485] Re: [ ruby-Bugs-5263 ] strptime fails to properly parse certain inputs — Yukihiro Matsumoto <matz@...> 2006/08/02

Hi,

[#8538] Re: [ ruby-Bugs-5263 ] strptime fails to properly parse certain inputs — nobu@... 2006/08/06

Hi,

[#8561] sandbox timers & block scopes — why the lucky stiff <ruby-core@...>

Two puzzles I am trying to solve:

28 messages 2006/08/08
[#8624] Re: sandbox timers & block scopes — why the lucky stiff <ruby-core@...> 2006/08/15

raise ThisDecayingInquisition, "anyone? anyone at all?"

[#8627] Re: sandbox timers & block scopes — MenTaLguY <mental@...> 2006/08/15

On Wed, 2006-08-16 at 00:35 +0900, why the lucky stiff wrote:

[#8628] Re: sandbox timers & block scopes — why the lucky stiff <ruby-core@...> 2006/08/15

On Wed, Aug 16, 2006 at 02:46:30AM +0900, MenTaLguY wrote:

[#8629] Re: sandbox timers & block scopes — "Charles O Nutter" <headius@...> 2006/08/15

On 8/15/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:

[#8690] a ruby-core primer — why the lucky stiff <ruby-core@...>

Hello, all. I've been working on the ruby-core page for the new Ruby site.

21 messages 2006/08/22

Re: [ ruby-Bugs-5351 ] Process.gid= fails on OS X

From: Kazuhiro NISHIYAMA <zn@...>
Date: 2006-08-10 17:13:23 UTC
List: ruby-core #8587
>>>>> On Wed, 9 Aug 2006 12:31:07 +0900
>>>>> nobu@ruby-lang.org said:
> 
> > -#elif defined HAVE_SETREUID
> > +#elif defined(HAVE_SETREUID) && !defined(OBSOLETE_SETREUID)
> 
> They all should be BROKEN_SETREUID, but not OBSOLETE_SETREUID,
> sorry.

I tried patch with debug print, s/OBSOLETE_SETREUID/BROKEN_SETREUID/g,
s/OBSOLETE_SETREUID/BROKEN_SETREUID/g and s/GIDTYPE/rb_gid_t/,
but failed yet.

Mac-mini:~ kazu$ sudo ~/opt/ruby18/bin/ruby -ve 'Process.gid=502'
ruby 1.8.5 (2006-08-09) [powerpc-darwin8.7.0]
/Users/kazu/wc/ruby-lang/ruby_1_8/process.c:2494
/Users/kazu/wc/ruby-lang/ruby_1_8/process.c:2503
-e:1:in `gid=': Operation not permitted (Errno::EPERM)
        from -e:1
Mac-mini:~ kazu$


Index: process.c
===================================================================
RCS file: /src/ruby/process.c,v
retrieving revision 1.92.2.33
diff -u -p -r1.92.2.33 process.c
--- process.c   25 Jul 2006 04:58:15 -0000      1.92.2.33
+++ process.c   10 Aug 2006 17:09:15 -0000
@@ -2122,7 +2122,7 @@ proc_setuid(obj, id)
     check_uid_switch();
 #if defined(HAVE_SETRESUID) &&  !defined(__CHECKER__)
     if (setresuid(uid, -1, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREUID
+#elif defined(HAVE_SETREUID) && !defined(BROKEN_SETREUID)
     if (setreuid(uid, -1) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETRUID
     if (setruid(uid) < 0) rb_sys_fail(0);
@@ -2491,14 +2491,19 @@ proc_setgid(obj, id)
 {
     int gid = NUM2INT(id);

+printf("%s:%d\n", __FILE__, __LINE__);
     check_gid_switch();
 #if defined(HAVE_SETRESGID) && !defined(__CHECKER__)
+printf("%s:%d\n", __FILE__, __LINE__);
     if (setresgid(gid, -1, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREGID
+#elif defined(HAVE_SETREGID) && !defined(BROKEN_SETREGID)
+printf("%s:%d\n", __FILE__, __LINE__);
     if (setregid(gid, -1) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETRGID
-    if (setrgid((GIDTYPE)gid) < 0) rb_sys_fail(0);
+printf("%s:%d\n", __FILE__, __LINE__);
+    if (setrgid((rb_gid_t)gid) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETGID
+printf("%s:%d\n", __FILE__, __LINE__);
     {
        if (getegid() == gid) {
            if (setgid(gid) < 0) rb_sys_fail(0);
@@ -2508,8 +2513,10 @@ proc_setgid(obj, id)
        }
     }
 #else
+printf("%s:%d\n", __FILE__, __LINE__);
     rb_notimplement();
 #endif
+printf("%s:%d\n", __FILE__, __LINE__);
     return INT2FIX(gid);
 }

@@ -2894,7 +2901,7 @@ proc_seteuid(obj, euid)
     check_uid_switch();
 #if defined(HAVE_SETRESUID) && !defined(__CHECKER__)
     if (setresuid(-1, NUM2INT(euid), -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREUID
+#elif defined(HAVE_SETREUID) && !defined(BROKEN_SETREUID)
     if (setreuid(-1, NUM2INT(euid)) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETEUID
     if (seteuid(NUM2INT(euid)) < 0) rb_sys_fail(0);
@@ -3008,7 +3015,7 @@ proc_setegid(obj, egid)

 #if defined(HAVE_SETRESGID) && !defined(__CHECKER__)
     if (setresgid(-1, NUM2INT(egid), -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREGID
+#elif defined(HAVE_SETREGID) && !defined(BROKEN_SETREGID)
     if (setregid(-1, NUM2INT(egid)) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETEGID
     if (setegid(NUM2INT(egid)) < 0) rb_sys_fail(0);



Mac-mini:~ kazu$ cat setrgid-test.c
#include <stdio.h>
#include <unistd.h>
int main() {
    printf("%d\n", getgid());
    printf("%d\n", setrgid(0));
    perror("setrgid(0)");
    printf("%d\n", getgid());
    printf("%d\n", setrgid(502));
    perror("setrgid(502)");
    printf("%d\n", getgid());
    return 0;
}
Mac-mini:~ kazu$ gcc setrgid-test.c
Mac-mini:~ kazu$ sudo ./a.out
0
0
setrgid(0): Unknown error: 0
0
-1
setrgid(502): Operation not permitted
0
Mac-mini:~ kazu$


--
|ZnZ
|Kazuhiro NISHIYAMA

In This Thread