From 0f71c1a2c5b5b25f3705348dda1d89befb1820f7 Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 26 Dec 2007 08:33:38 +0000 Subject: * io.c (io_fflush): check closed fptr after rb_write_internal to avoid SEGV on MacOS X. git-svn-id: http://svn.ruby-lang.org/repos/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 6cadd20b3..58a8ea543 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 7c5ee6f20..b5641b2e7 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; -- cgit