aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
authorJean Boussier <byroot@ruby-lang.org>2023-11-09 10:17:46 +0100
committerJean Boussier <jean.boussier@gmail.com>2023-11-09 11:45:02 +0100
commitb013aae0c66fbef0faaab29ceeda18bae4fef608 (patch)
tree7cb11bccb5c5aa5473817a2612b25b0fa7d4d2b8 /io.c
parent0f02fbd9ffc0c26fa160505872a6c0d0b0493028 (diff)
downloadruby-b013aae0c66fbef0faaab29ceeda18bae4fef608.tar.gz
IO#read always check the provided buffer is mutable
Otherwise you can have work in some circumstance but not in others.
Diffstat (limited to 'io.c')
-rw-r--r--io.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/io.c b/io.c
index 28b5abb1c5..7ded212804 100644
--- a/io.c
+++ b/io.c
@@ -3276,9 +3276,10 @@ io_setstrbuf(VALUE *str, long len)
}
else {
VALUE s = StringValue(*str);
+ rb_str_modify(s);
+
long clen = RSTRING_LEN(s);
if (clen >= len) {
- rb_str_modify(s);
return FALSE;
}
len -= clen;