summaryrefslogtreecommitdiff
path: root/error.c
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2020-05-07 21:49:40 +0200
committerAaron Patterson <aaron.patterson@gmail.com>2020-05-11 09:15:24 -0700
commit1258a0fb90ea63bf1ec108815cce0d552acfc726 (patch)
treeb059dab4e959a08791777651b133d80c8459333f /error.c
parent15e977349e31389515bccf7a9684005a0c36e02d (diff)
Remove the 65 size limit for name_err_mesg_to_str
This limit was introduced on Nov 20 1996 in 554b989ba1623b9f6a0b76f00824c83a23fbcbc1 Apparently to protect from a buffer overflow: * eval.c (f_missing): オブジェクトの文字列表現が長すぎる時バッファ を書き潰していた However I tested that path with very large strings and it works fine.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3090
Diffstat (limited to 'error.c')
-rw-r--r--error.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/error.c b/error.c
index 09d5787ad5..4912869e43 100644
--- a/error.c
+++ b/error.c
@@ -1791,7 +1791,7 @@ name_err_mesg_to_str(VALUE obj)
d = rb_protect(rb_inspect, obj, &state);
if (state)
rb_set_errinfo(Qnil);
- if (NIL_P(d) || RSTRING_LEN(d) > 65) {
+ if (NIL_P(d)) {
d = rb_any_to_s(obj);
}
singleton = (RSTRING_LEN(d) > 0 && RSTRING_PTR(d)[0] == '#');