diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-04 02:22:44 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-04 02:22:44 +0000 |
commit | 9b0ecfbc3cef1f3c9457a52b55c5c0d3b1347db5 (patch) | |
tree | f8ead1284b2c53889ae186c7643c1cf8a48dcb8e /thread.c | |
parent | 71491c00585d1c24b6f42ba1130733138da16388 (diff) | |
download | ruby-9b0ecfbc3cef1f3c9457a52b55c5c0d3b1347db5.tar.gz |
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
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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); |