From 0ada28f906097f5ba370575a86aef1e42a9d7ba0 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 4 Dec 2015 02:22:44 +0000 Subject: thread.c: name must be ascii-compatible * thread.c (rb_thread_setname): name must be ascii-compatible, as pthread APIs do not accept legacy wide char strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52876 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'thread.c') diff --git a/thread.c b/thread.c index 1444383aa7..6e2d882768 100644 --- a/thread.c +++ b/thread.c @@ -2780,7 +2780,13 @@ rb_thread_setname(VALUE thread, VALUE name) rb_thread_t *th; GetThreadPtr(thread, th); if (!NIL_P(name)) { + rb_encoding *enc; StringValueCStr(name); + enc = rb_enc_get(name); + if (!rb_enc_asciicompat(enc)) { + rb_raise(rb_eArgError, "ASCII incompatible encoding (%s)", + rb_enc_name(enc)); + } name = rb_str_new_frozen(name); #ifdef SET_ANOTHER_THREAD_NAME s = RSTRING_PTR(name); -- cgit v1.2.3