com php-src: fix leaks in here: ext/mcrypt/mcrypt.c

From: Date: Tue, 06 May 2014 10:20:54 +0000
Subject: com php-src: fix leaks in here: ext/mcrypt/mcrypt.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-78122@lists.php.net to get a copy of this message
Commit: 7f32ffbf899089ea0307d5528acb3bccb97410ba Author: krakjoe <joe.watkins@live.co.uk> Tue, 6 May 2014 11:20:54 +0100 Parents: 4187be99fe1cfd6c66f30f2c23bf1ba2c2f425e1 Branches: phpng Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7f32ffbf899089ea0307d5528acb3bccb97410ba Log: fix leaks in here Changed paths: M ext/mcrypt/mcrypt.c Diff: diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c index 28d8faa..b9df203 100644 --- a/ext/mcrypt/mcrypt.c +++ b/ext/mcrypt/mcrypt.c @@ -495,6 +495,7 @@ PHP_MINFO_FUNCTION(mcrypt) /* {{{ */ php_info_print_table_row(2, "Supported modes", tmp2..s->val); smart_str_free(&tmp1); smart_str_free(&tmp2); + php_info_print_table_end(); DISPLAY_INI_ENTRIES(); @@ -1139,7 +1140,8 @@ static char *php_mcrypt_get_key_size_str( int i; smart_str str = {0}; smart_str_appends(&str, "Only keys of sizes "); - + char *result = NULL; + for (i = 0; i < key_size_count; ++i) { if (i == key_size_count - 1) { smart_str_appends(&str, " or "); @@ -1152,7 +1154,10 @@ static char *php_mcrypt_get_key_size_str( smart_str_appends(&str, " supported"); smart_str_0(&str); - return str.s->val; + result = estrndup(str.s->val, str.s->len); + smart_str_free(&str); + + return result; } } /* }}} */ @@ -1285,8 +1290,10 @@ static void php_mcrypt_do_crypt(char* cipher, const char *key, int key_len, cons } data_s[data_size] = 0; + RETVAL_STRINGL(data_s, data_size); - + efree(data_s); + /* freeing vars */ mcrypt_generic_end(td); } @@ -1296,7 +1303,7 @@ static void php_mcrypt_do_crypt(char* cipher, const char *key, int key_len, cons OFB crypt/decrypt data using key key with cipher cipher starting with iv */ PHP_FUNCTION(mcrypt_encrypt) { - char *cipher, *key, *data, *mode, *iv = NULL; + char *cipher, *key = NULL, *data, *mode, *iv = NULL; int cipher_len, key_len, data_len, mode_len, iv_len = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|s", &cipher, &cipher_len, @@ -1449,7 +1456,8 @@ PHP_FUNCTION(mcrypt_create_iv) iv[--size] = (char) (255.0 * php_rand(TSRMLS_C) / RAND_MAX); } } - RETURN_STRINGL(iv, n); + RETVAL_STRINGL(iv, n); + efree(iv); } /* }}} */

« previous php.cvs (#78122) next »