diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-30 14:49:18 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-30 14:49:18 +0000 |
| commit | 29732d5eecffb9e88dec10c09cf5d47c591ff798 (patch) | |
| tree | bf7cb657b868c5912bcb7dd61b24d96afa44f3d5 | |
| parent | 7b9e7428ef5c7429f7df9714987b1b905aa022da (diff) | |
| download | ruby-29732d5eecffb9e88dec10c09cf5d47c591ff798.tar.gz ruby-29732d5eecffb9e88dec10c09cf5d47c591ff798.tar.xz ruby-29732d5eecffb9e88dec10c09cf5d47c591ff798.zip | |
* io.c (pipe_open): errno should be preserved for rb_sys_fail() when
fork failed.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | io.c | 2 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Tue Nov 30 23:49:12 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * io.c (pipe_open): errno should be preserved for rb_sys_fail() when + fork failed. + Tue Nov 30 16:18:50 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * io.c (io_fread): need not to null terminate. [ruby-dev:24998] @@ -2903,8 +2903,10 @@ pipe_open(argc, argv, mode) if (modef & FMODE_READABLE) close(arg.pr[1]); if (modef & FMODE_WRITABLE) close(arg.pw[0]); if (pid == -1) { + int e = errno; if (modef & FMODE_READABLE) close(arg.pr[0]); if (modef & FMODE_WRITABLE) close(arg.pw[1]); + errno = e; rb_sys_fail(cmd); } #define PIPE_FDOPEN(i) (rb_fdopen((i?arg.pw:arg.pr)[i], i?"w":"r")) |
