diff options
author | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-29 13:54:02 +0000 |
---|---|---|
committer | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-29 13:54:02 +0000 |
commit | 36c40166aca9dd59dc867ac2e46f102cc443c4b2 (patch) | |
tree | c1892136bec1a074d519c4fc5803258009fab368 | |
parent | 40a442541cfe836cdff88dbc385bb87110d71ae9 (diff) | |
download | ruby-36c40166aca9dd59dc867ac2e46f102cc443c4b2.tar.gz |
* ext/openssl/ossl_ssl.c (ssl_npn_encode_protocol_i): fix byte order
issue on big-endian architecture [ruby-core:50292] [Bug #7463]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/openssl/ossl_ssl.c | 4 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Thu Nov 29 22:39:35 2012 Naohisa Goto <ngotogenome@gmail.com> + + * ext/openssl/ossl_ssl.c (ssl_npn_encode_protocol_i): fix byte order + issue on big-endian architecture [ruby-core:50292] [Bug #7463] + Thu Nov 29 22:23:31 2012 Hiroshi Nakamura <nahi@ruby-lang.org> * test/openssl/test_cipher.rb (test_ctr_if_exists): add CTR mode test diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 34df7d3d01..d5c07d79a9 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -569,10 +569,12 @@ static VALUE ssl_npn_encode_protocol_i(VALUE cur, VALUE encoded) { int len = RSTRING_LENINT(cur); + char len_byte; if (len < 1 || len > 255) ossl_raise(eSSLError, "Advertised protocol must have length 1..255"); /* Encode the length byte */ - rb_str_buf_cat(encoded, (const char *) &len, 1); + len_byte = len; + rb_str_buf_cat(encoded, &len_byte, 1); rb_str_buf_cat(encoded, RSTRING_PTR(cur), len); return Qnil; } |