diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-26 08:33:38 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-26 08:33:38 +0000 |
commit | 0f71c1a2c5b5b25f3705348dda1d89befb1820f7 (patch) | |
tree | e7811d42617130004a1b9c8561c72de45c781af9 | |
parent | bcac8da380ab71ae85bd3813d9fa7e02927a4c10 (diff) | |
download | ruby-0f71c1a2c5b5b25f3705348dda1d89befb1820f7.tar.gz ruby-0f71c1a2c5b5b25f3705348dda1d89befb1820f7.tar.xz ruby-0f71c1a2c5b5b25f3705348dda1d89befb1820f7.zip |
* 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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | io.c | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Wed Dec 26 17:31:08 2007 Tanaka Akira <akr@fsij.org> + + * 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 <nobu@ruby-lang.org> * string.c (Init_String): defines chars method. @@ -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; |