summaryrefslogtreecommitdiffhomepage
path: root/src/object.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-07-06 23:11:51 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-07-06 23:11:51 +0900
commit01a8d8498fc3c1b107b303661d06b858858fce26 (patch)
tree55c481947b59a8df62f737cba404059170c11ba9 /src/object.c
parent81fc5ff48a79c75a7761e1028092b52ad2753cea (diff)
downloadmruby-01a8d8498fc3c1b107b303661d06b858858fce26.tar.gz
mruby-01a8d8498fc3c1b107b303661d06b858858fce26.zip
Avoid infinite loop when converting objects to strings.
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/object.c b/src/object.c
index db9dfb568..7257f402d 100644
--- a/src/object.c
+++ b/src/object.c
@@ -338,6 +338,7 @@ mrb_convert_type(mrb_state *mrb, mrb_value val, enum mrb_vtype type, const char
if (mrb_type(val) == type) return val;
v = convert_type(mrb, val, tname, method, TRUE);
if (mrb_type(v) != type) {
+ if (type == MRB_TT_STRING) return mrb_any_to_s(mrb, val);
mrb_raisef(mrb, E_TYPE_ERROR, "%v cannot be converted to %s by #%s", val, tname, method);
}
return v;