diff options
Diffstat (limited to 'ext/openssl/ossl_ssl.c')
-rw-r--r-- | ext/openssl/ossl_ssl.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index db44c423f2..a5b25e14de 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -2080,14 +2080,13 @@ ossl_ssl_write_internal_safe(VALUE _args) static VALUE ossl_ssl_write_internal(VALUE self, VALUE str, VALUE opts) { - VALUE args[3] = {self, str, opts}; - int state; - str = StringValue(str); - + StringValue(str); int frozen = RB_OBJ_FROZEN(str); if (!frozen) { - str = rb_str_locktmp(str); + rb_str_locktmp(str); } + int state; + VALUE args[3] = {self, str, opts}; VALUE result = rb_protect(ossl_ssl_write_internal_safe, (VALUE)args, &state); if (!frozen) { rb_str_unlocktmp(str); |