From 5a24475a133a74b84e8d6005a99fb4648580711f Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 20 Jun 2012 02:33:06 +0000 Subject: process.c: fixnum umask * process.c (rb_execarg_addopt): always make Fixnum, and ignore higher bits in too large umask value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ process.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 591b278223..0c7f654e9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 20 11:33:04 2012 Nobuyoshi Nakada + + * process.c (rb_execarg_addopt): always make Fixnum, and ignore higher + bits in too large umask value. + Wed Jun 20 11:24:35 2012 Nobuyoshi Nakada * lib/test/unit.rb (Test::Unit::Runner#_run_parallel): deal with diff --git a/process.c b/process.c index 326f379661..6f230ee61b 100644 --- a/process.c +++ b/process.c @@ -1602,7 +1602,7 @@ rb_execarg_addopt(struct rb_exec_arg *e, VALUE key, VALUE val) if (!NIL_P(rb_ary_entry(options, EXEC_OPTION_UMASK))) { rb_raise(rb_eArgError, "umask option specified twice"); } - rb_ary_store(options, EXEC_OPTION_UMASK, LONG2NUM(cmask)); + rb_ary_store(options, EXEC_OPTION_UMASK, LONG2FIX(cmask)); } else if (id == rb_intern("close_others")) { if (!NIL_P(rb_ary_entry(options, EXEC_OPTION_CLOSE_OTHERS))) { -- cgit v1.2.3