diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-13 14:59:08 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-13 14:59:08 +0000 |
commit | f46eb05759d8b38a8a25dae39a86a9c8350a220f (patch) | |
tree | 6aad12f09713f9896ad2a2334f46ed2ffb8782cb /sprintf.c | |
parent | e57289d2084f97f13534e060c05204bff47c7b8a (diff) | |
download | ruby-f46eb05759d8b38a8a25dae39a86a9c8350a220f.tar.gz |
sprintf.c: fix out-of-bound access
* sprintf.c (rb_str_format): get rid of out-of-bound access when
single % at the end.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sprintf.c')
-rw-r--r-- | sprintf.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -517,6 +517,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) VALUE sym = Qnil; for (t = p; t < end && *t != '%'; t++) ; + if (t + 1 == end) ++t; PUSH(p, t - p); if (coderange != ENC_CODERANGE_BROKEN && scanned < blen) { scanned += rb_str_coderange_scan_restartable(buf+scanned, buf+blen, enc, &coderange); |