summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/exec.c2
-rw-r--r--ext/standard/mail.c15
-rw-r--r--main/main.c4
3 files changed, 11 insertions, 10 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index bc1f067290..70d0d82dda 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -409,7 +409,7 @@ PHP_FUNCTION(escapeshellcmd)
}
if (command_len) {
- RETVAL_STRING(php_escape_shell_cmd(command));
+ RETVAL_STR(php_escape_shell_cmd(command));
} else {
RETVAL_EMPTY_STRING();
}
diff --git a/ext/standard/mail.c b/ext/standard/mail.c
index 0977a284ea..40c01a650e 100644
--- a/ext/standard/mail.c
+++ b/ext/standard/mail.c
@@ -101,14 +101,15 @@ PHP_FUNCTION(ezmlm_hash)
PHP_FUNCTION(mail)
{
char *to=NULL, *message=NULL, *headers=NULL, *headers_trimmed=NULL;
- char *subject=NULL, *extra_cmd=NULL;
+ char *subject=NULL;
+ zend_string *extra_cmd=NULL;
int to_len, message_len, headers_len = 0;
- int subject_len, extra_cmd_len = 0, i;
+ int subject_len, i;
char *force_extra_parameters = INI_STR("mail.force_extra_parameters");
char *to_r, *subject_r;
char *p, *e;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|ss", &to, &to_len, &subject, &subject_len, &message, &message_len, &headers, &headers_len, &extra_cmd, &extra_cmd_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|sS", &to, &to_len, &subject, &subject_len, &message, &message_len, &headers, &headers_len, &extra_cmd) == FAILURE) {
return;
}
@@ -121,7 +122,7 @@ PHP_FUNCTION(mail)
headers_trimmed = php_trim(headers, headers_len, NULL, 0, NULL, 2 TSRMLS_CC);
}
if (extra_cmd) {
- MAIL_ASCIIZ_CHECK(extra_cmd, extra_cmd_len);
+ MAIL_ASCIIZ_CHECK(extra_cmd->val, extra_cmd->len);
}
if (to_len > 0) {
@@ -167,10 +168,10 @@ PHP_FUNCTION(mail)
if (force_extra_parameters) {
extra_cmd = php_escape_shell_cmd(force_extra_parameters);
} else if (extra_cmd) {
- extra_cmd = php_escape_shell_cmd(extra_cmd);
+ extra_cmd = php_escape_shell_cmd(extra_cmd->val);
}
- if (php_mail(to_r, subject_r, message, headers_trimmed, extra_cmd TSRMLS_CC)) {
+ if (php_mail(to_r, subject_r, message, headers_trimmed, extra_cmd ? extra_cmd->val : NULL TSRMLS_CC)) {
RETVAL_TRUE;
} else {
RETVAL_FALSE;
@@ -181,7 +182,7 @@ PHP_FUNCTION(mail)
}
if (extra_cmd) {
- efree (extra_cmd);
+ STR_RELEASE(extra_cmd);
}
if (to_r != to) {
efree(to_r);
diff --git a/main/main.c b/main/main.c
index 821a1a7bfb..2f05b5f55f 100644
--- a/main/main.c
+++ b/main/main.c
@@ -629,7 +629,7 @@ PHPAPI void php_log_err(char *log_message TSRMLS_DC)
if (fd != -1) {
char *tmp;
int len;
- char *error_time_str;
+ zend_string *error_time_str;
time(&error_time);
#ifdef ZTS
@@ -647,7 +647,7 @@ PHPAPI void php_log_err(char *log_message TSRMLS_DC)
#endif
php_ignore_value(write(fd, tmp, len));
efree(tmp);
- efree(error_time_str);
+ STR_FREE(error_time_str);
close(fd);
PG(in_error_log) = 0;
return;