ruby-changes:2351
From: ko1@a...
Date: 9 Nov 2007 10:11:03 +0900
Subject: [ruby-changes:2351] ko1 - Ruby:r13842 (trunk): * ruby.c (set_arg0): fix breaking environ bugs.
ko1 2007-11-09 10:10:06 +0900 (Fri, 09 Nov 2007) New Revision: 13842 Modified files: trunk/ChangeLog trunk/ruby.c Log: * ruby.c (set_arg0): fix breaking environ bugs. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ruby.c?r1=13842&r2=13841 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13842&r2=13841 Index: ChangeLog =================================================================== --- ChangeLog (revision 13841) +++ ChangeLog (revision 13842) @@ -1,3 +1,7 @@ +Fri Nov 9 10:05:54 2007 Koichi Sasada <ko1@a...> + + * ruby.c (set_arg0): fix breaking environ bugs. + Fri Nov 9 07:26:04 2007 Yukihiro Matsumoto <matz@r...> * random.c: update MT URL.[ruby-core:13305]. Index: ruby.c =================================================================== --- ruby.c (revision 13841) +++ ruby.c (revision 13842) @@ -1173,7 +1173,7 @@ static void set_arg0(VALUE val, ID id) { - char *s; + char *s, *t; long i; if (origarg.argv == 0) @@ -1204,13 +1204,16 @@ } memcpy(origarg.argv[0], s, i); - s = origarg.argv[0] + i; - *s = '\0'; - if (i + 1 < origarg.len) memset(s + 1, ' ', origarg.len - i - 1); + t = origarg.argv[0] + i; + *t = '\0'; + + if (i + 1 < origarg.len) memset(t + 1, ' ', origarg.len - i - 1); + { int j; - for (j = 1; j < origarg.argc; j++) - origarg.argv[i] = s; + for (j = 1; j < origarg.argc; j++) { + origarg.argv[j] = t; + } } #endif rb_progname = rb_tainted_str_new(s, i); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml