From eeab289f878086d21288a09128752e88f8491bf1 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2023 08:51:39 +0900 Subject: [PATCH] mruby-data/data.c (mrb_data_ref): avoid out-of-bound access --- mrbgems/mruby-data/src/data.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-data/src/data.c b/mrbgems/mruby-data/src/data.c index a708447ae..0e6bd3940 100644 --- a/mrbgems/mruby-data/src/data.c +++ b/mrbgems/mruby-data/src/data.c @@ -101,9 +101,11 @@ mrb_data_ref(mrb_state *mrb, mrb_value obj) mrb_argnum_error(mrb, argc, 0, 0); } mrb_int i = mrb_integer(mrb_proc_cfunc_env_get(mrb, 0)); + mrb_int len = RDATA_LEN(obj); mrb_value *ptr = RDATA_PTR(obj); - if (!ptr) return mrb_nil_value(); + if (!ptr || len <= i) + return mrb_nil_value(); return ptr[i]; }