summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-28 05:51:05 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-28 05:51:05 +0000
commitaaf1f031be253f2f24ed19c322398b7694c88a50 (patch)
tree8158c20b1abb5a9254978e8b9a7e309b067a6521 /string.c
parentdc4e42b9ad9f3e9de1248822c53def643fddb4e5 (diff)
merge revision(s) 62040: [Backport #14388]
string.c: clear substring code range * string.c (str_substr): substring of broken code range string may be valid or broken. patch by tommy (Masahiro Tomita) at [ruby-dev:50430] [Bug #14388]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@62946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/string.c b/string.c
index 84533e7efe..0021c53e3a 100644
--- a/string.c
+++ b/string.c
@@ -2287,6 +2287,7 @@ rb_str_substr(VALUE str, long beg, long len)
str2 = str_new_shared(rb_obj_class(str2), str2);
RSTRING(str2)->as.heap.ptr += ofs;
RSTRING(str2)->as.heap.len = len;
+ ENC_CODERANGE_CLEAR(str2);
}
else {
str2 = rb_str_new_with_class(str, p, len);