summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_default_classes.c5
-rw-r--r--Zend/zend_exceptions.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c
index cd6038431d..a8048200ca 100644
--- a/Zend/zend_default_classes.c
+++ b/Zend/zend_default_classes.c
@@ -264,8 +264,11 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha
TRACE_APPEND_KEY("function");
TRACE_APPEND_CHR('(');
if (zend_hash_find(ht, "args", sizeof("args"), (void**)&tmp) == SUCCESS) {
+ int last_len = *len;
zend_hash_apply_with_arguments(Z_ARRVAL_PP(tmp), (apply_func_args_t)_build_trace_args, 2, str, len);
- *len -= 2; /* remove last ', ' */
+ if (last_len != *len) {
+ *len -= 2; /* remove last ', ' */
+ }
}
TRACE_APPEND_STR(")\n");
return ZEND_HASH_APPLY_KEEP;
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index cd6038431d..a8048200ca 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -264,8 +264,11 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha
TRACE_APPEND_KEY("function");
TRACE_APPEND_CHR('(');
if (zend_hash_find(ht, "args", sizeof("args"), (void**)&tmp) == SUCCESS) {
+ int last_len = *len;
zend_hash_apply_with_arguments(Z_ARRVAL_PP(tmp), (apply_func_args_t)_build_trace_args, 2, str, len);
- *len -= 2; /* remove last ', ' */
+ if (last_len != *len) {
+ *len -= 2; /* remove last ', ' */
+ }
}
TRACE_APPEND_STR(")\n");
return ZEND_HASH_APPLY_KEEP;