From 0177687124be88f9fc0981d737bbdb7c57cb971f Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 15 Apr 2016 00:02:41 +0000 Subject: io/console: reject symbols with nul char * ext/io/console/console.c (console_key_pressed_p): symbol names can contain nul chars, reject them. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/io/console/console.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'ext') diff --git a/ext/io/console/console.c b/ext/io/console/console.c index fd3f03b6b4..17fee11672 100644 --- a/ext/io/console/console.c +++ b/ext/io/console/console.c @@ -718,13 +718,12 @@ console_key_pressed_p(VALUE io, VALUE k) } else { const struct vktable *t; + const char *kn; if (SYMBOL_P(k)) { k = rb_sym2str(k); } - else { - StringValueCStr(k); - } - t = console_win32_vk(RSTRING_PTR(k), RSTRING_LEN(k)); + kn = StringValueCStr(k); + t = console_win32_vk(kn, RSTRING_LEN(k)); if (!t || (vk = (short)t->vk) == -1) { rb_raise(rb_eArgError, "unknown virtual key code: %"PRIsVALUE, k); } -- cgit v1.2.3