From b3e3c8a578bed04bb6ff3185fe9fb8971e8ee43d Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 26 Dec 2007 08:33:38 +0000 Subject: [PATCH] * io.c (io_fflush): check closed fptr after rb_write_internal to avoid SEGV on MacOS X. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ io.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6cadd20b38..58a8ea5433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Dec 26 17:31:08 2007 Tanaka Akira + + * io.c (io_fflush): check closed fptr after rb_write_internal to avoid + SEGV on MacOS X. + Wed Dec 26 16:10:17 2007 Nobuyoshi Nakada * string.c (Init_String): defines chars method. diff --git a/io.c b/io.c index 7c5ee6f205..b5641b2e78 100644 --- a/io.c +++ b/io.c @@ -534,7 +534,8 @@ io_fflush(rb_io_t *fptr) l = PIPE_BUF; } r = rb_write_internal(fptr->fd, fptr->wbuf+fptr->wbuf_off, l); - /* xxx: signal handler may modify wbuf */ + /* xxx: other threads may modify wbuf */ + rb_io_check_closed(fptr); if (r == fptr->wbuf_len) { fptr->wbuf_off = 0; fptr->wbuf_len = 0;