summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-08-17 18:45:36 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-08-17 18:45:36 +0900
commitedf01d4e82d8e44ee30ec41fbcb7f802bc8b8c5d (patch)
treed16984356acf44224993ea846e2f3f1ae4007c3b /string.c
parent21fd83a823145042767cc5f237b41cc6bb51f2e9 (diff)
Treat NULL fake string as an empty string
And the NULL string must be of size 0.
Diffstat (limited to 'string.c')
-rw-r--r--string.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/string.c b/string.c
index 8efe1174fb..97271827d3 100644
--- a/string.c
+++ b/string.c
@@ -413,6 +413,11 @@ setup_fake_str(struct RString *fake_str, const char *name, long len, int encidx)
fake_str->basic.flags = T_STRING|RSTRING_NOEMBED|STR_NOFREE|STR_FAKESTR;
/* SHARED to be allocated by the callback */
+ if (!name) {
+ RUBY_ASSERT_ALWAYS(len == 0);
+ name = "";
+ }
+
ENCODING_SET_INLINED((VALUE)fake_str, encidx);
RBASIC_SET_CLASS_RAW((VALUE)fake_str, rb_cString);