diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2023-10-13 10:41:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-13 10:41:53 -0400 |
commit | 0bf1749e9fcef24bf7bebbce2a62ee6c766d4c7c (patch) | |
tree | 91fe7c682b5e1240f0bd720545acd29bb58af12d /vm_insnhelper.c | |
parent | 511571b5ff3aaab3ac013edc166a1bcf61f6d6d4 (diff) | |
download | ruby-0bf1749e9fcef24bf7bebbce2a62ee6c766d4c7c.tar.gz |
YJIT: Fix argument clobbering in some block_arg+rest_param calls (#8647)
Previously, for block argument callsites with some specific argument
count and callee local variable count combinations, YJIT ended up
writing over arguments that are supposed to be collected into a rest
parameter array unmodified.
Detect when clobbering would happen and avoid it. Also, place the block
handler after the stack overflow check, since it writes to new stack
space.
Reported-by: Takashi Kokubun <takashikkbn@gmail.com>
Diffstat (limited to 'vm_insnhelper.c')
0 files changed, 0 insertions, 0 deletions