[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]