From 340c3b4638fd671d84a6249a33f71c71774d94b3 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 5 Nov 2010 22:03:54 +0000 Subject: * process.c (rb_fork_err): save errinfo before fdopen. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ process.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7c0d26b67a..2cb4379af2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Nov 6 07:03:49 2010 Nobuyoshi Nakada + + * process.c (rb_fork_err): save errinfo before fdopen. + Sat Nov 6 00:43:58 2010 Aaron Patterson * ext/openssl/ossl_ocsp.c (ossl_ocspcid_initialize): an optional diff --git a/process.c b/process.c index ffeba3317f..4c726922cd 100644 --- a/process.c +++ b/process.c @@ -2569,8 +2569,9 @@ rb_fork_err(int *status, int (*chfunc)(void*, char *, size_t), void *charg, VALU if (!(int)rb_protect(chfunc_protect, (VALUE)&arg, &state)) _exit(EXIT_SUCCESS); #ifdef FD_CLOEXEC if (write(ep[1], &state, sizeof(state)) == sizeof(state) && state) { + VALUE errinfo = rb_errinfo(); io = rb_io_fdopen(ep[1], O_WRONLY|O_BINARY, NULL); - rb_marshal_dump(rb_errinfo(), io); + rb_marshal_dump(errinfo, io); rb_io_flush(io); } err = errno; -- cgit v1.2.3