From 86b5068496ad86da71e2de4fcb8db0c2347a7f98 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 15 Jan 2018 14:56:08 +0100 Subject: Fix some memleaks --- src/sp_cookie_encryption.c | 6 +++--- src/sp_unserialize.c | 2 +- src/sp_utils.c | 2 +- src/sp_var_value.c | 3 +-- 4 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/sp_cookie_encryption.c b/src/sp_cookie_encryption.c index 42cac85..29e96b1 100644 --- a/src/sp_cookie_encryption.c +++ b/src/sp_cookie_encryption.c @@ -94,7 +94,7 @@ int decrypt_cookie(zval *pDest, int num_args, va_list args, generate_key(key); - decrypted = pecalloc(ZSTR_LEN(debase64), 1, 0); + decrypted = ecalloc(ZSTR_LEN(debase64), 1); ret = crypto_secretbox_open( decrypted, @@ -137,8 +137,8 @@ static zend_string *encrypt_data(char *data, unsigned long long data_len) { unsigned char key[crypto_secretbox_KEYBYTES] = {0}; unsigned char nonce[crypto_secretbox_NONCEBYTES] = {0}; - unsigned char *data_to_encrypt = pecalloc(encrypted_msg_len, 1, 0); - unsigned char *encrypted_data = pecalloc(emsg_and_nonce_len, 1, 1); + unsigned char *data_to_encrypt = ecalloc(encrypted_msg_len, 1); + unsigned char *encrypted_data = ecalloc(emsg_and_nonce_len, 1); generate_key(key); diff --git a/src/sp_unserialize.c b/src/sp_unserialize.c index f78b046..6b7b03b 100644 --- a/src/sp_unserialize.c +++ b/src/sp_unserialize.c @@ -57,7 +57,7 @@ PHP_FUNCTION(sp_unserialize) { } hmac = buf + buf_len - 64; - serialized_str = ecalloc(sizeof(*serialized_str) * (buf_len - 64 + 1), 1); + serialized_str = ecalloc(buf_len - 64 + 1, 1); memcpy(serialized_str, buf, buf_len - 64); zval func_name; diff --git a/src/sp_utils.c b/src/sp_utils.c index 52e494f..81941f7 100644 --- a/src/sp_utils.c +++ b/src/sp_utils.c @@ -360,7 +360,7 @@ int hook_function(const char* original_name, HashTable* hook_table, } } else { // TODO this can be moved somewhere else to gain some marginal perfs CG(compiler_options) |= ZEND_COMPILE_NO_BUILTIN_STRLEN; - char* mb_name = pecalloc(strlen(original_name) + 3 + 1, 1, 0); + char* mb_name = ecalloc(strlen(original_name) + 3 + 1, 1); memcpy(mb_name, "mb_", 3); memcpy(mb_name + 3, VAR_AND_LEN(original_name)); if (zend_hash_str_find(CG(function_table), VAR_AND_LEN(mb_name))) { diff --git a/src/sp_var_value.c b/src/sp_var_value.c index b9d8763..a3eed3e 100644 --- a/src/sp_var_value.c +++ b/src/sp_var_value.c @@ -164,8 +164,7 @@ static zval *get_unknown_type(const char *restrict value, zval *zvalue, } if (!zvalue) { zvalue = emalloc(sizeof(zval)); - zvalue->value.str = zend_string_init(value, strlen(value), 0); - zvalue->u1.v.type = IS_STRING; + ZVAL_PSTRING(zvalue, value); } } else { return NULL; -- cgit v1.3