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);
}
/* }}} */