summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-12-30 22:09:32 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-12-30 22:09:32 +0900
commit270ea41b376d82b9685746ea363f64cbc84e79c9 (patch)
tree3a5349f88a626108dd3e0746b88ff8d6dc08e878
parent803bf010ca9a963abfab2ec348ae1c5c98f41bc2 (diff)
downloadmruby-270ea41b376d82b9685746ea363f64cbc84e79c9.tar.gz
mruby-270ea41b376d82b9685746ea363f64cbc84e79c9.zip
method_missing() may have CALL_MAXARGS-1 arguments; fix #3351
The issue was reported by https://hackerone.com/ston3
-rw-r--r--src/vm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 1ea23afc7..cca0fd03b 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1143,6 +1143,9 @@ RETRY_TRY_BLOCK:
else {
value_move(regs+a+2, regs+a+1, ++n);
regs[a+1] = sym;
+ if (n == CALL_MAXARGS) {
+ regs[a+1] = mrb_ary_new_from_values(mrb, n, regs+a+1);
+ }
}
}