summaryrefslogtreecommitdiff
path: root/src/sp_unserialize.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp_unserialize.c')
-rw-r--r--src/sp_unserialize.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sp_unserialize.c b/src/sp_unserialize.c
index db99389..0f27255 100644
--- a/src/sp_unserialize.c
+++ b/src/sp_unserialize.c
@@ -24,6 +24,10 @@ PHP_FUNCTION(sp_serialize) {
24 call_user_function(CG(function_table), NULL, &func_name, &hmac, 3, params); 24 call_user_function(CG(function_table), NULL, &func_name, &hmac, 3, params);
25 25
26 size_t len = Z_STRLEN_P(return_value) + Z_STRLEN(hmac); 26 size_t len = Z_STRLEN_P(return_value) + Z_STRLEN(hmac);
27 if (len < Z_STRLEN_P(return_value)) {
28 sp_log_err("overflow_error", "Overflow tentative detected in sp_serialize.");
29 sp_terminate();
30 }
27 zend_string *res = zend_string_alloc(len, 0); 31 zend_string *res = zend_string_alloc(len, 0);
28 32
29 memcpy(ZSTR_VAL(res), Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)); 33 memcpy(ZSTR_VAL(res), Z_STRVAL_P(return_value), Z_STRLEN_P(return_value));