Project

General

Profile

Actions

Bug #19595

closed

YJIT: Crash from missing argc check in known cfuncs

Added by jhawthorn (John Hawthorn) over 1 year ago. Updated over 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:113205]

Description

https://github.com/ruby/ruby/pull/7697

Previously we were missing a compile-time check that the known cfuncs receive the correct number of arguments.

$ ruby --yjit-call-threshold=1 -e '"foo".to_s(*[])'
ruby: YJIT has panicked. More info to follow...
thread '<unnamed>' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `2`', ./yjit/src/codegen.rs:7225:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
-e:1: [BUG] YJIT panicked
ruby 3.3.0dev (2023-04-08T18:54:01Z master 671cfc2000) +YJIT [x86_64-linux]

This likely needs a backport to Ruby 3.2, Ruby 3.1 does not have this bug

Actions

Also available in: Atom PDF

Like0
Like0Like0