[ruby-core:113205] [Ruby master Bug#19595] YJIT: Crash from missing argc check in known cfuncs

Issue #19595 has been reported by jhawthorn (John Hawthorn). ---------------------------------------- Bug #19595: YJIT: Crash from missing argc check in known cfuncs https://bugs.ruby-lang.org/issues/19595 * Author: jhawthorn (John Hawthorn) * Status: Open * Priority: Normal * Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED ---------------------------------------- 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 -- https://bugs.ruby-lang.org/

Issue #19595 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE ruby_3_2 8852b4b2deea20f488208dc4730ef149f67d7594 merged revision(s) 0ce2bdc76dd17aa3d42a352a6244c87a51e7606d. ---------------------------------------- Bug #19595: YJIT: Crash from missing argc check in known cfuncs https://bugs.ruby-lang.org/issues/19595#change-103895 * Author: jhawthorn (John Hawthorn) * Status: Closed * Priority: Normal * Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE ---------------------------------------- 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 -- https://bugs.ruby-lang.org/
participants (2)
-
jhawthorn (John Hawthorn)
-
nagachika (Tomoyuki Chikanaga)