From 7fd10e65cebb34e1caea601b3c035c466dbe51d3 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 27 Sep 2025 10:09:00 +0900 Subject: [PATCH] mruby-compiler: fix NODE_SUPER/NODE_ZSUPER dump segfault Fixed copy-paste error where NODE_SUPER and NODE_ZSUPER cases in dump_node incorrectly used CALL_NODE_ARGS macro instead of SUPER_NODE_ARGS, causing segmentation faults when parser dump tried to access invalid memory addresses. Co-authored-by: Claude --- mrbgems/mruby-compiler/core/parse.y | 4 ++-- mrbgems/mruby-compiler/core/y.tab.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 4567ba679..776da8729 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -8163,14 +8163,14 @@ dump_node(mrb_state *mrb, node *tree, int offset) case NODE_SUPER: printf("NODE_SUPER:\n"); if (SUPER_NODE_ARGS(tree)) { - dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno); + dump_callargs(mrb, SUPER_NODE_ARGS(tree), offset, lineno); } break; case NODE_ZSUPER: printf("NODE_ZSUPER:\n"); if (SUPER_NODE_ARGS(tree)) { - dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno); + dump_callargs(mrb, SUPER_NODE_ARGS(tree), offset, lineno); } break; diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index 96421696e..39a8ced46 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -14992,14 +14992,14 @@ dump_node(mrb_state *mrb, node *tree, int offset) case NODE_SUPER: printf("NODE_SUPER:\n"); if (SUPER_NODE_ARGS(tree)) { - dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno); + dump_callargs(mrb, SUPER_NODE_ARGS(tree), offset, lineno); } break; case NODE_ZSUPER: printf("NODE_ZSUPER:\n"); if (SUPER_NODE_ARGS(tree)) { - dump_callargs(mrb, CALL_NODE_ARGS(tree), offset, lineno); + dump_callargs(mrb, SUPER_NODE_ARGS(tree), offset, lineno); } break;