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;