From: Jani Taskinen Date: Sun, 22 Nov 2009 18:31:01 +0000 (+0000) Subject: - Fixed error_log() to be binary safe when using message_type 3 (message appended... X-Git-Tag: php-5.4.0alpha1~191^2~2367 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80576044c0dd765e6a998a4f64d694012b44716d;p=php - Fixed error_log() to be binary safe when using message_type 3 (message appended to file). --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 03c9704762..3e699380ff 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -4596,7 +4596,7 @@ PHP_FUNCTION(error_log) opt_err = erropt; } - if (_php_error_log(opt_err, message, opt, headers TSRMLS_CC) == FAILURE) { + if (_php_error_log_ex(opt_err, message, message_len, opt, headers TSRMLS_CC) == FAILURE) { RETURN_FALSE; } @@ -4604,17 +4604,22 @@ PHP_FUNCTION(error_log) } /* }}} */ +/* For BC (not binary-safe!) */ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers TSRMLS_DC) /* {{{ */ { - php_stream *stream = NULL; + return _php_error_log_ex(opt_err, message, (opt_err == 3) ? strlen(message) : 0, opt, headers TSRMLS_CC); +} +/* }}} */ - switch (opt_err) { +PHPAPI int _php_error_log_ex(int opt_err, char *message, int message_len, char *opt, char *headers TSRMLS_DC) /* {{{ */ +{ + php_stream *stream = NULL; + switch (opt_err) + { case 1: /*send an email */ - { - if (!php_mail(opt, "PHP error_log message", message, headers, NULL TSRMLS_CC)) { - return FAILURE; - } + if (!php_mail(opt, "PHP error_log message", message, headers, NULL TSRMLS_CC)) { + return FAILURE; } break; @@ -4625,11 +4630,13 @@ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers T case 3: /*save to a file */ stream = php_stream_open_wrapper(opt, "a", IGNORE_URL | REPORT_ERRORS, NULL); - if (!stream) + if (!stream) { return FAILURE; - php_stream_write(stream, message, strlen(message)); + } + php_stream_write(stream, message, message_len); php_stream_close(stream); break; + case 4: /* send to SAPI */ if (sapi_module.log_message) { sapi_module.log_message(message); @@ -4637,6 +4644,7 @@ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers T return FAILURE; } break; + default: php_log_err(message TSRMLS_CC); break; diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h index a1fe348550..c14348877f 100644 --- a/ext/standard/basic_functions.h +++ b/ext/standard/basic_functions.h @@ -144,7 +144,9 @@ PHP_RSHUTDOWN_FUNCTION(user_filters); PHP_FUNCTION(request_set_encoding); PHP_FUNCTION(request_had_errors); +/* Left for BC (not binary safe!) */ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers TSRMLS_DC); +PHPAPI int _php_error_log_ex(int opt_err, char *message, int message_len, char *opt, char *headers TSRMLS_DC); PHPAPI char *php_get_current_user(void); PHPAPI int php_prefix_varname(zval *result, zval *prefix, zstr var_name, int var_name_len, int var_name_type, zend_bool add_underscore TSRMLS_DC);