From e4b210906564cb5e922e8331a6b3724624377fdb Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 26 Mar 2024 14:54:50 -0400 Subject: [PATCH] [PRISM] Fix ASCII-compatible check for eval encoding --- prism_compile.c | 7 +++++-- test/.excludes-prism/TestEval.rb | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/prism_compile.c b/prism_compile.c index d7eada1538..a5b1219d6c 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -8611,9 +8611,12 @@ pm_load_parse_file(pm_parse_result_t *result, VALUE filepath) VALUE pm_parse_string(pm_parse_result_t *result, VALUE source, VALUE filepath) { - pm_string_constant_init(&result->input, RSTRING_PTR(source), RSTRING_LEN(source)); - rb_encoding *encoding = rb_enc_get(source); + if (!rb_enc_asciicompat(encoding)) { + return rb_exc_new_cstr(rb_eArgError, "invalid source encoding"); + } + + pm_string_constant_init(&result->input, RSTRING_PTR(source), RSTRING_LEN(source)); pm_options_encoding_set(&result->options, rb_enc_name(encoding)); pm_options_filepath_set(&result->options, RSTRING_PTR(filepath)); diff --git a/test/.excludes-prism/TestEval.rb b/test/.excludes-prism/TestEval.rb index 83f3e38fc9..6cc6bdfb1d 100644 --- a/test/.excludes-prism/TestEval.rb +++ b/test/.excludes-prism/TestEval.rb @@ -1,2 +1 @@ -exclude(:test_eval_ascii_incompatible, "incorrect encoding") exclude(:test_file_encoding, "incorrect encoding")