From: "mame (Yusuke Endoh) via ruby-core" Date: 2026-11-02T13:50:47+00:00 Subject: [ruby-core:127300] [Ruby Bug#22495] UTF-32 strings with a byte 0x80 or more in the most significant position are reported as valid Issue #22495 has been updated by mame (Yusuke Endoh). https://github.com/ruby/ruby/pull/19646 ---------------------------------------- Bug #22495: UTF-32 strings with a byte 0x80 or more in the most significant position are reported as valid https://bugs.ruby-lang.org/issues/22495#change-119724 * Author: mame (Yusuke Endoh) * Status: Open * Backport: 3.3: REQUIRED, 3.4: REQUIRED, 4.0: REQUIRED ---------------------------------------- `String#valid_encoding?` returns `true` for UTF-32 sequences whose code point is 0x80000000 or more, when Ruby is built with gcc -O2. ```ruby "\xff\xff\xff\xff".force_encoding("UTF-32BE").valid_encoding? #=> true (expected: false) "\x00\x00\x00\x80".force_encoding("UTF-32LE").valid_encoding? #=> true (expected: false) "\xff\xff\xff\xff".force_encoding("UTF-32BE").ord #=> 4294967295 (expected: ArgumentError) ``` @make_now_just found this and wrote the fix. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/