diff options
author | U.Nakamura <usa@ruby-lang.org> | 2023-11-06 20:18:14 +0900 |
---|---|---|
committer | U.Nakamura <usa@ruby-lang.org> | 2023-11-06 20:18:14 +0900 |
commit | 4f7b595815bd75706c276b03c8d445748e869f2e (patch) | |
tree | 70391cfa4ef7ed0d27f3f3a6af8d2c8ee1686b72 /io_buffer.c | |
parent | d494cf4ddababb80660381e963f910ccacc3f7bc (diff) |
merge revision(s) 19346c2336053b351673da030b00c704138252d8: [Backport #19754]
[Bug #19754] Make `IO::Buffer#get_string` check `offset` range
(#8016)
---
io_buffer.c | 3 +++
test/ruby/test_io_buffer.rb | 8 ++++++++
2 files changed, 11 insertions(+)
Diffstat (limited to 'io_buffer.c')
-rw-r--r-- | io_buffer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/io_buffer.c b/io_buffer.c index 4b806906f2..7d4fa8d330 100644 --- a/io_buffer.c +++ b/io_buffer.c @@ -1063,8 +1063,11 @@ rb_io_buffer_free(VALUE self) static inline void io_buffer_validate_range(struct rb_io_buffer *data, size_t offset, size_t length) { + if (offset > data->size) { + rb_raise(rb_eArgError, "Specified offset exceeds buffer size!"); + } if (offset + length > data->size) { - rb_raise(rb_eArgError, "Specified offset+length exceeds data size!"); + rb_raise(rb_eArgError, "Specified offset+length exceeds buffer size!"); } } |