From 38c50b3094cbd36efa7d531426197339bf3aaf38 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 10 Dec 2022 08:00:31 +0900 Subject: [PATCH] mruby-struct (struct_index): avoid direct array indexing Caused crash probably due to the combination of C++ UB & optimizer. --- mrbgems/mruby-struct/src/struct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c index 19c61b5a0..6dc0b5b00 100644 --- a/mrbgems/mruby-struct/src/struct.c +++ b/mrbgems/mruby-struct/src/struct.c @@ -393,7 +393,8 @@ struct_index(mrb_state *mrb, mrb_int i, mrb_int len) static mrb_value struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i) { - return RSTRUCT_PTR(s)[struct_index(mrb, i, RSTRUCT_LEN(s))]; + mrb_int idx = struct_index(mrb, i, RSTRUCT_LEN(s)); + return RSTRUCT_PTR(s)[idx]; } /* 15.2.18.4.2 */