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

ruby-changes:11812

From: nobu <ko1@a...>
Date: Sun, 17 May 2009 08:56:04 +0900 (JST)
Subject: [ruby-changes:11812] Ruby:r23467 (trunk): * ruby.c (set_arg0): get rids of overrun.

nobu	2009-05-17 08:55:46 +0900 (Sun, 17 May 2009)

  New Revision: 23467

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23467

  Log:
    * ruby.c (set_arg0): get rids of overrun.

  Modified files:
    trunk/ChangeLog
    trunk/ruby.c
    trunk/version.h

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23466)
+++ ChangeLog	(revision 23467)
@@ -1,3 +1,7 @@
+Sun May 17 08:55:44 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (set_arg0): get rids of overrun.
+
 Sat May 16 18:38:32 2009  Kouhei Sutou  <kou@c...>
 
 	* lib/rss/parser.rb: add nil check.
Index: version.h
===================================================================
--- version.h	(revision 23466)
+++ version.h	(revision 23467)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_RELEASE_DATE "2009-05-16"
+#define RUBY_RELEASE_DATE "2009-05-17"
 #define RUBY_PATCHLEVEL -1
 #define RUBY_BRANCH_NAME "trunk"
 
@@ -8,7 +8,7 @@
 #define RUBY_VERSION_TEENY 1
 #define RUBY_RELEASE_YEAR 2009
 #define RUBY_RELEASE_MONTH 5
-#define RUBY_RELEASE_DAY 16
+#define RUBY_RELEASE_DAY 17
 
 #include "ruby/version.h"
 
Index: ruby.c
===================================================================
--- ruby.c	(revision 23466)
+++ ruby.c	(revision 23467)
@@ -124,7 +124,7 @@
     int argc;
     char **argv;
 #if !defined(PSTAT_SETCMD) && !defined(HAVE_SETPROCTITLE)
-    int len;
+    size_t len;
 #endif
 } origarg;
 
@@ -1623,7 +1623,7 @@
 extern char **environ;
 #endif
 
-static int
+static size_t
 get_arglen(int argc, char **argv)
 {
     char *s = argv[0];
@@ -1686,7 +1686,7 @@
 #else
 
     if (i >= origarg.len) {
-	i = origarg.len;
+	i = origarg.len - 1;
     }
 
     memcpy(origarg.argv[0], s, i);
@@ -1823,24 +1823,7 @@
 void
 ruby_sysinit(int *argc, char ***argv)
 {
-#if defined(__APPLE__) && (defined(__MACH__) || defined(__DARWIN__))
-    int i, n = *argc, len = 0;
-    char **v1 = *argv, **v2, *p;
-
-    for (i = 0; i < n; ++i) {
-	len += strlen(v1[i]) + 1;
-    }
-    v2 = malloc((n + 1)* sizeof(char*) + len);
-    p = (char *)&v2[n + 1];
-    for (i = 0; i < n; ++i) {
-	int l = strlen(v1[i]);
-	memcpy(p, v1[i], l + 1);
-	v2[i] = p;
-	p += l + 1;
-    }
-    v2[n] = 0;
-    *argv = v2;
-#elif defined(_WIN32)
+#if defined(_WIN32)
     void rb_w32_sysinit(int *argc, char ***argv);
     rb_w32_sysinit(argc, argv);
 #endif

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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