From 8e1a82b424903829ffdc7ec4197e869142852e21 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 28 Dec 2022 10:43:35 +0900 Subject: [PATCH] mruby-io/io.c: raise error if seek position is too big --- mrbgems/mruby-io/src/io.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index 0eb23fe0f..c60d88ffa 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -987,15 +987,10 @@ mrb_io_sysseek(mrb_state *mrb, mrb_value io) if (pos == -1) { mrb_sys_fail(mrb, "sysseek"); } - if (pos > MRB_INT_MAX) { -#ifndef MRB_NO_FLOAT - return mrb_float_value(mrb, (mrb_float)pos); -#else - mrb_raise(mrb, E_IO_ERROR, "sysseek reached too far for MRB_NO_FLOAT"); -#endif - } else { - return mrb_int_value(mrb, pos); + if (pos > (off_t)MRB_INT_MAX) { + mrb_raise(mrb, E_IO_ERROR, "sysseek reached too far for mrb_int"); } + return mrb_int_value(mrb, (mrb_int)pos); } static mrb_value