From ab509c0edb4d2631772018cebbbb5dd3c06b0582 Mon Sep 17 00:00:00 2001 From: gotoyuzo Date: Sun, 30 Oct 2005 20:50:48 +0000 Subject: * ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must not be empty. [ruby-talk:161220] * test/openssl/test_cipher.rb: add test for Cipher#update(""). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/openssl/ossl_cipher.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ext') diff --git a/ext/openssl/ossl_cipher.c b/ext/openssl/ossl_cipher.c index f90fb2477a..bc72d7e538 100644 --- a/ext/openssl/ossl_cipher.c +++ b/ext/openssl/ossl_cipher.c @@ -224,7 +224,8 @@ ossl_cipher_update(VALUE self, VALUE data) StringValue(data); in = RSTRING(data)->ptr; - in_len = RSTRING(data)->len; + if ((in_len = RSTRING(data)->len) == 0) + rb_raise(rb_eArgError, "data must not be empty"); GetCipher(self, ctx); str = rb_str_new(0, in_len+EVP_CIPHER_CTX_block_size(ctx)); if (!EVP_CipherUpdate(ctx, RSTRING(str)->ptr, &out_len, in, in_len)) -- cgit v1.2.3