summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThomas Marshall <thomas@thomasmarshall.com>2024-03-03 10:43:35 +0000
committerGitHub <noreply@github.com>2024-03-03 10:43:35 +0000
commit7e4b1f8e1935a10df3c41ee60ca0987d73281126 (patch)
tree4a03894e654e309606cbdd8dfe3fa7241be6ab03 /test
parent93556d46203545bc2364b1c0dd1281ba098f3cc9 (diff)
[Bug #20322] Fix rb_enc_interned_str_cstr null encoding
The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be a null pointer, but this currently causes a segmentation fault when trying to autoload the encoding. This commit fixes the issue by checking for NULL before calling `rb_enc_autoload`.
Diffstat (limited to 'test')
-rw-r--r--test/-ext-/string/test_fstring.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/-ext-/string/test_fstring.rb b/test/-ext-/string/test_fstring.rb
index f737c9a269..fcec6be543 100644
--- a/test/-ext-/string/test_fstring.rb
+++ b/test/-ext-/string/test_fstring.rb
@@ -20,6 +20,10 @@ class Test_String_Fstring < Test::Unit::TestCase
RUBY
end
+ def test_rb_enc_interned_str_null_encoding
+ assert_equal Encoding::ASCII_8BIT, Bug::String.rb_enc_interned_str(nil).encoding
+ end
+
def test_rb_enc_str_new_autoloaded_encoding
assert_separately([], <<~RUBY)
require '-test-/string'
@@ -28,6 +32,10 @@ class Test_String_Fstring < Test::Unit::TestCase
RUBY
end
+ def test_rb_enc_str_new_null_encoding
+ assert_equal Encoding::ASCII_8BIT, Bug::String.rb_enc_str_new(nil).encoding
+ end
+
def test_instance_variable
str = __method__.to_s * 3
str.instance_variable_set(:@test, 42)