summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-02-13 00:59:00 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-02-13 00:59:00 +0000
commit2f6595c1edc2b7768a814e4cf2651c1da4e7cede (patch)
tree5326e41ff41c2bfe103c764b88575c3110afc80c
parent168f2f470f42033364fe374f199a4beb8180baec (diff)
* ruby.c (ruby_init_loadpath): ensures buffer terminated
before use strncpy(). * ruby.c (proc_options): avoid SEGV at -S with no arguments. (ruby-bugs-ja:PR#391) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--ruby.c21
2 files changed, 18 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 759611d691..fa52ef1904 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Thu Feb 13 09:58:12 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * ruby.c (ruby_init_loadpath): ensures buffer terminated
+ before use strncpy().
+
+ * ruby.c (proc_options): avoid SEGV at -S with no arguments.
+ (ruby-bugs-ja:PR#391)
+
Thu Feb 13 01:30:10 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* eval.c (rb_thread_schedule): current thread may be dead when
diff --git a/ruby.c b/ruby.c
index 878829a742..bc24ef2536 100644
--- a/ruby.c
+++ b/ruby.c
@@ -255,6 +255,7 @@ ruby_init_loadpath()
_execname(libpath, FILENAME_MAX);
#endif
+ libpath[FILENAME_MAX] = '\0';
#ifdef DOSISH
translate_char(libpath, '\\', '/');
#endif
@@ -704,14 +705,14 @@ proc_options(argc, argv)
OBJ_TAINT(rb_load_path);
}
- if (!e_script && argc == 0) { /* no more args */
- if (verbose) exit(0);
- script = "-";
- }
- else {
+ if (argc == 0) { /* no more args */
if (!e_script) {
- script = argv[0];
+ if (verbose) exit(0);
+ script = "-";
}
+ }
+ else if (!e_script) {
+ script = argv[0];
if (script[0] == '\0') {
script = "-";
}
@@ -728,13 +729,11 @@ proc_options(argc, argv)
}
if (!script) script = argv[0];
}
- }
- if (!e_script) {
- argc--; argv++;
- }
#ifdef DOSISH
- translate_char(script, '\\', '/');
+ translate_char(script, '\\', '/');
#endif
+ }
+ argc--; argv++;
}
ruby_script(script);