From 6b482ee3f8f84a7ba1fa5c423a6fb9a55bd1ee14 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 4 Jan 2026 14:09:57 +0900 Subject: [PATCH] vm.c: add runtime type check for OP_STRCAT Replace mrb_assert with mrb_ensure_string_type to catch codegen bugs even in release builds. This prevents null-dereference crashes when OP_STRCAT receives a non-string first operand due to compiler bugs. Consistent with OP_HASH which uses mrb_ensure_hash_type for similar type safety. Co-authored-by: Claude --- src/vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vm.c b/src/vm.c index 219e4e99f..ca86895bb 100644 --- a/src/vm.c +++ b/src/vm.c @@ -3123,7 +3123,7 @@ RETRY_TRY_BLOCK: } CASE(OP_STRCAT, B) { - mrb_assert(mrb_string_p(regs[a])); + mrb_ensure_string_type(mrb, regs[a]); mrb_str_concat(mrb, regs[a], regs[a+1]); ci = mrb->c->ci; NEXT;