]> granicus.if.org Git - php/commitdiff
Fixed char*/zend_string* inconsistency
authorDmitry Stogov <dmitry@zend.com>
Fri, 7 Mar 2014 14:23:57 +0000 (18:23 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 7 Mar 2014 14:23:57 +0000 (18:23 +0400)
ext/standard/exec.c
ext/standard/mail.c
main/main.c

index bc1f06729057b609b0353b25754ddd04f18cd9ed..70d0d82dda3a6d18a020f287813e27cb40400f76 100644 (file)
@@ -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();
        }
index 0977a284ea7d1d04dec29c6d46fc172220e069a1..40c01a650e4043d8648224231c717e0966fc4b0b 100644 (file)
@@ -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);
index 821a1a7bfb965aea3879369ce256e514e0c7bc52..2f05b5f55f43c190aaa413116e6a6b1dba8e384e 100644 (file)
@@ -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;