mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* io.c (pipe_open): handles leaked on win32 when an error occurs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
76e3005431
commit
0fefd19023
2 changed files with 17 additions and 3 deletions
|
@ -1,3 +1,7 @@
|
|||
Mon Jul 13 22:28:03 2009 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* io.c (pipe_open): handles leaked on win32 when an error occurs.
|
||||
|
||||
Mon Jul 13 20:21:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* marshal.c (r_object0): should not shadow outer variable not to
|
||||
|
|
16
io.c
16
io.c
|
@ -5034,9 +5034,19 @@ pipe_open(struct rb_exec_arg *eargp, VALUE prog, const char *modestr, int fmode,
|
|||
rb_thread_sleep(1);
|
||||
break;
|
||||
default:
|
||||
if (eargp)
|
||||
rb_run_exec_options(&sarg, NULL);
|
||||
rb_sys_fail(cmd);
|
||||
{
|
||||
int e = errno;
|
||||
if (eargp)
|
||||
rb_run_exec_options(&sarg, NULL);
|
||||
close(pair[0]);
|
||||
close(pair[1]);
|
||||
if ((fmode & (FMODE_READABLE|FMODE_WRITABLE)) == (FMODE_READABLE|FMODE_WRITABLE)) {
|
||||
close(write_pair[0]);
|
||||
close(write_pair[1]);
|
||||
}
|
||||
errno = e;
|
||||
rb_sys_fail(cmd);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue