* process.c (rb_f_exec): get rid of SEGV when exec failed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2004-02-25 17:19:16 +00:00
Родитель 920f5af303
Коммит 56e2c5243f
2 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Thu Feb 26 02:19:11 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
* process.c (rb_f_exec): get rid of SEGV when exec failed.
Wed Feb 25 21:17:33 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
* gc.c (obj_free), io.c (rb_io_fptr_finalize), rubyio.h (OpenFile):

Просмотреть файл

@ -901,7 +901,7 @@ extern char *dln_find_exe();
static void
security(str)
char *str;
const char *str;
{
if (rb_env_path_tainted()) {
if (rb_safe_level() > 0) {
@ -913,7 +913,7 @@ security(str)
static int
proc_exec_v(argv, prog)
char **argv;
char *prog;
const char *prog;
{
int err;
@ -1232,7 +1232,7 @@ rb_f_exec(argc, argv)
e.argv = argv;
e.prog = prog ? RSTRING(prog)->ptr : 0;
rb_exec(&e);
rb_sys_fail(RSTRING(argv[0])->ptr);
rb_sys_fail(e.prog);
return Qnil; /* dummy */
}