From 11679e3f3a5e7680895e19f5cbc7b306be6c9d45 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 22 Apr 2022 08:32:18 +0900 Subject: [PATCH] vm.c: check if target_class is NULL (when prepended). Address CVE-2022-1427 --- src/vm.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/vm.c b/src/vm.c index 8a79b950c..3501abf57 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1753,10 +1753,7 @@ RETRY_TRY_BLOCK: mrb_exc_set(mrb, exc); goto L_RAISE; } - if (target_class->flags & MRB_FL_CLASS_IS_PREPENDED) { - target_class = mrb_vm_ci_target_class(ci); - } - else if (target_class->tt == MRB_TT_MODULE) { + if ((target_class->flags & MRB_FL_CLASS_IS_PREPENDED) || target_class->tt == MRB_TT_MODULE) { target_class = mrb_vm_ci_target_class(ci); if (!target_class || target_class->tt != MRB_TT_ICLASS) { goto super_typeerror;