diff options
| author | Derick Rethans <derick@php.net> | 2006-05-31 20:09:07 +0000 |
|---|---|---|
| committer | Derick Rethans <derick@php.net> | 2006-05-31 20:09:07 +0000 |
| commit | c116ecf2079d4ca1acdc2824308420d4112514c6 (patch) | |
| tree | 3bb5e16b006111c4c9ee3f1e09cd6b356a16dd02 /ext/mcrypt/mcrypt.c | |
| parent | c188ec09eb5aee729dd129b01808bdcae0d708f6 (diff) | |
| download | php-git-c116ecf2079d4ca1acdc2824308420d4112514c6.tar.gz | |
- There was nothing wrong here, bug report #37595 is bogus.
- Added a new test case to demonstrate a longer plain text.
Diffstat (limited to 'ext/mcrypt/mcrypt.c')
| -rw-r--r-- | ext/mcrypt/mcrypt.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c index a76ae2ee58..da4ce8ef79 100644 --- a/ext/mcrypt/mcrypt.c +++ b/ext/mcrypt/mcrypt.c @@ -492,11 +492,15 @@ PHP_FUNCTION(mcrypt_generic) ZEND_FETCH_RESOURCE(pm, php_mcrypt *, mcryptind, -1, "MCrypt", le_mcrypt); PHP_MCRYPT_INIT_CHECK convert_to_string_ex(data); + if (Z_STRLEN_PP(data) == 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "An empty string was passed"); + RETURN_FALSE + } /* Check blocksize */ if (mcrypt_enc_is_block_mode(pm->td) == 1) { /* It's a block algorithm */ block_size = mcrypt_enc_get_block_size(pm->td); - data_size = ((Z_STRLEN_PP(data) / block_size) + 1) * block_size; + data_size = (((Z_STRLEN_PP(data) - 1) / block_size) + 1) * block_size; data_s = emalloc(data_size + 1); memset(data_s, 0, data_size); memcpy(data_s, Z_STRVAL_PP(data), Z_STRLEN_PP(data)); @@ -533,6 +537,10 @@ PHP_FUNCTION(mdecrypt_generic) ZEND_FETCH_RESOURCE(pm, php_mcrypt * , mcryptind, -1, "MCrypt", le_mcrypt); PHP_MCRYPT_INIT_CHECK convert_to_string_ex(data); + if (Z_STRLEN_PP(data) == 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "An empty string was passed"); + RETURN_FALSE + } /* Check blocksize */ if (mcrypt_enc_is_block_mode(pm->td) == 1) { /* It's a block algorithm */ |
