mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Convert error filename to zend_string
Error handling functions/callbacks now accept the error filename as a zend_string* instead of a const char*.
This commit is contained in:
parent
8c420bd265
commit
a1c6ee2164
9 changed files with 50 additions and 54 deletions
33
Zend/zend.c
33
Zend/zend.c
|
@ -77,7 +77,7 @@ ZEND_API FILE *(*zend_fopen)(zend_string *filename, zend_string **opened_path);
|
|||
ZEND_API zend_result (*zend_stream_open_function)(zend_file_handle *handle);
|
||||
ZEND_API void (*zend_ticks_function)(int ticks);
|
||||
ZEND_API void (*zend_interrupt_function)(zend_execute_data *execute_data);
|
||||
ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
ZEND_API void (*zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
void (*zend_printf_to_smart_string)(smart_string *buf, const char *format, va_list ap);
|
||||
void (*zend_printf_to_smart_str)(smart_str *buf, const char *format, va_list ap);
|
||||
ZEND_API char *(*zend_getenv)(const char *name, size_t name_len);
|
||||
|
@ -1316,7 +1316,7 @@ ZEND_API zval *zend_get_configuration_directive(zend_string *name) /* {{{ */
|
|||
} while (0)
|
||||
|
||||
static ZEND_COLD void zend_error_impl(
|
||||
int orig_type, const char *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
int orig_type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
{
|
||||
zval params[4];
|
||||
zval retval;
|
||||
|
@ -1381,7 +1381,7 @@ static ZEND_COLD void zend_error_impl(
|
|||
ZVAL_LONG(¶ms[0], type);
|
||||
|
||||
if (error_filename) {
|
||||
ZVAL_STRING(¶ms[2], error_filename);
|
||||
ZVAL_STR_COPY(¶ms[2], error_filename);
|
||||
} else {
|
||||
ZVAL_NULL(¶ms[2]);
|
||||
}
|
||||
|
@ -1449,7 +1449,7 @@ static ZEND_COLD void zend_error_impl(
|
|||
/* }}} */
|
||||
|
||||
static ZEND_COLD void zend_error_va_list(
|
||||
int orig_type, const char *error_filename, uint32_t error_lineno,
|
||||
int orig_type, zend_string *error_filename, uint32_t error_lineno,
|
||||
const char *format, va_list args)
|
||||
{
|
||||
zend_string *message = zend_vstrpprintf(0, format, args);
|
||||
|
@ -1457,7 +1457,7 @@ static ZEND_COLD void zend_error_va_list(
|
|||
zend_string_release(message);
|
||||
}
|
||||
|
||||
static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint32_t *lineno) {
|
||||
static ZEND_COLD void get_filename_lineno(int type, zend_string **filename, uint32_t *lineno) {
|
||||
/* Obtain relevant filename and lineno */
|
||||
switch (type) {
|
||||
case E_CORE_ERROR:
|
||||
|
@ -1479,16 +1479,11 @@ static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint3
|
|||
case E_USER_DEPRECATED:
|
||||
case E_RECOVERABLE_ERROR:
|
||||
if (zend_is_compiling()) {
|
||||
*filename = ZSTR_VAL(zend_get_compiled_filename());
|
||||
*filename = zend_get_compiled_filename();
|
||||
*lineno = zend_get_compiled_lineno();
|
||||
} else if (zend_is_executing()) {
|
||||
*filename = zend_get_executed_filename();
|
||||
if ((*filename)[0] == '[') { /* [no active file] */
|
||||
*filename = NULL;
|
||||
*lineno = 0;
|
||||
} else {
|
||||
*filename = zend_get_executed_filename_ex();
|
||||
*lineno = zend_get_executed_lineno();
|
||||
}
|
||||
} else {
|
||||
*filename = NULL;
|
||||
*lineno = 0;
|
||||
|
@ -1500,12 +1495,12 @@ static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint3
|
|||
break;
|
||||
}
|
||||
if (!*filename) {
|
||||
*filename = "Unknown";
|
||||
*filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_API ZEND_COLD void zend_error_at(
|
||||
int type, const char *filename, uint32_t lineno, const char *format, ...) {
|
||||
int type, zend_string *filename, uint32_t lineno, const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
if (!filename) {
|
||||
|
@ -1519,7 +1514,7 @@ ZEND_API ZEND_COLD void zend_error_at(
|
|||
}
|
||||
|
||||
ZEND_API ZEND_COLD void zend_error(int type, const char *format, ...) {
|
||||
const char *filename;
|
||||
zend_string *filename;
|
||||
uint32_t lineno;
|
||||
va_list args;
|
||||
|
||||
|
@ -1530,7 +1525,7 @@ ZEND_API ZEND_COLD void zend_error(int type, const char *format, ...) {
|
|||
}
|
||||
|
||||
ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...) {
|
||||
const char *filename;
|
||||
zend_string *filename;
|
||||
uint32_t lineno;
|
||||
va_list args;
|
||||
|
||||
|
@ -1541,7 +1536,7 @@ ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...)
|
|||
}
|
||||
|
||||
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(
|
||||
int type, const char *filename, uint32_t lineno, const char *format, ...)
|
||||
int type, zend_string *filename, uint32_t lineno, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
|
@ -1559,7 +1554,7 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(
|
|||
|
||||
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *format, ...)
|
||||
{
|
||||
const char *filename;
|
||||
zend_string *filename;
|
||||
uint32_t lineno;
|
||||
va_list args;
|
||||
|
||||
|
@ -1572,7 +1567,7 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *
|
|||
}
|
||||
|
||||
ZEND_API ZEND_COLD void zend_error_zstr(int type, zend_string *message) {
|
||||
const char *filename;
|
||||
zend_string *filename;
|
||||
uint32_t lineno;
|
||||
get_filename_lineno(type, &filename, &lineno);
|
||||
zend_error_impl(type, filename, lineno, message);
|
||||
|
|
|
@ -215,7 +215,7 @@ struct _zend_class_entry {
|
|||
};
|
||||
|
||||
typedef struct _zend_utility_functions {
|
||||
void (*error_function)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
void (*error_function)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
size_t (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2);
|
||||
size_t (*write_function)(const char *str, size_t str_length);
|
||||
FILE *(*fopen_function)(zend_string *filename, zend_string **opened_path);
|
||||
|
@ -310,7 +310,7 @@ extern ZEND_API zend_write_func_t zend_write;
|
|||
extern ZEND_API FILE *(*zend_fopen)(zend_string *filename, zend_string **opened_path);
|
||||
extern ZEND_API void (*zend_ticks_function)(int ticks);
|
||||
extern ZEND_API void (*zend_interrupt_function)(zend_execute_data *execute_data);
|
||||
extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
extern ZEND_API void (*zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
extern ZEND_API void (*zend_on_timeout)(int seconds);
|
||||
extern ZEND_API zend_result (*zend_stream_open_function)(zend_file_handle *handle);
|
||||
extern void (*zend_printf_to_smart_string)(smart_string *buf, const char *format, va_list ap);
|
||||
|
@ -330,8 +330,8 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *
|
|||
/* For custom format specifiers like H */
|
||||
ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...);
|
||||
/* If filename is NULL the default filename is used. */
|
||||
ZEND_API ZEND_COLD void zend_error_at(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
|
||||
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
|
||||
ZEND_API ZEND_COLD void zend_error_at(int type, zend_string *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
|
||||
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(int type, zend_string *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
|
||||
ZEND_API ZEND_COLD void zend_error_zstr(int type, zend_string *message);
|
||||
|
||||
ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
|
||||
|
|
|
@ -872,7 +872,7 @@ ZEND_API ZEND_COLD zend_object *zend_throw_error_exception(zend_class_entry *exc
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
static void zend_error_va(int type, const char *file, uint32_t lineno, const char *format, ...) /* {{{ */
|
||||
static void zend_error_va(int type, zend_string *file, uint32_t lineno, const char *format, ...) /* {{{ */
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
|
@ -900,8 +900,8 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
|
|||
zend_long line = zval_get_long(GET_PROPERTY_SILENT(&exception, ZEND_STR_LINE));
|
||||
int type = (ce_exception == zend_ce_parse_error ? E_PARSE : E_COMPILE_ERROR) | E_DONT_BAIL;
|
||||
|
||||
zend_observer_error_notify(type, ZSTR_VAL(file), line, message);
|
||||
zend_error_cb(type, ZSTR_VAL(file), line, message);
|
||||
zend_observer_error_notify(type, file, line, message);
|
||||
zend_error_cb(type, file, line, message);
|
||||
|
||||
zend_string_release_ex(file, 0);
|
||||
zend_string_release_ex(message, 0);
|
||||
|
@ -930,7 +930,7 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
|
|||
line = zval_get_long(GET_PROPERTY_SILENT(&zv, ZEND_STR_LINE));
|
||||
}
|
||||
|
||||
zend_error_va(E_WARNING, (file && ZSTR_LEN(file) > 0) ? ZSTR_VAL(file) : NULL, line,
|
||||
zend_error_va(E_WARNING, (file && ZSTR_LEN(file) > 0) ? file : NULL, line,
|
||||
"Uncaught %s in exception handling during call to %s::__toString()",
|
||||
ZSTR_VAL(Z_OBJCE(zv)->name), ZSTR_VAL(ce_exception->name));
|
||||
|
||||
|
@ -944,7 +944,7 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
|
|||
line = zval_get_long(GET_PROPERTY_SILENT(&exception, ZEND_STR_LINE));
|
||||
|
||||
zend_error_va(severity | E_DONT_BAIL,
|
||||
(file && ZSTR_LEN(file) > 0) ? ZSTR_VAL(file) : NULL, line,
|
||||
(file && ZSTR_LEN(file) > 0) ? file : NULL, line,
|
||||
"Uncaught %s\n thrown", ZSTR_VAL(str));
|
||||
|
||||
zend_string_release_ex(str, 0);
|
||||
|
|
|
@ -245,7 +245,7 @@ ZEND_API void zend_observer_error_register(zend_observer_error_cb cb)
|
|||
zend_llist_add_element(&zend_observer_error_callbacks, &cb);
|
||||
}
|
||||
|
||||
void zend_observer_error_notify(int type, const char *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
{
|
||||
zend_llist_element *element;
|
||||
zend_observer_error_cb callback;
|
||||
|
|
|
@ -72,10 +72,10 @@ ZEND_API void ZEND_FASTCALL zend_observer_fcall_end(
|
|||
|
||||
ZEND_API void zend_observer_fcall_end_all(void);
|
||||
|
||||
typedef void (*zend_observer_error_cb)(int type, const char *error_filename, uint32_t error_lineno, zend_string *message);
|
||||
typedef void (*zend_observer_error_cb)(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
||||
|
||||
ZEND_API void zend_observer_error_register(zend_observer_error_cb callback);
|
||||
void zend_observer_error_notify(int type, const char *error_filename, uint32_t error_lineno, zend_string *message);
|
||||
void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
|
||||
|
||||
END_EXTERN_C()
|
||||
|
||||
|
|
|
@ -505,6 +505,7 @@ EMPTY_SWITCH_DEFAULT_CASE()
|
|||
_(ZEND_STR_PAAMAYIM_NEKUDOTAYIM, "::") \
|
||||
_(ZEND_STR_ARGS, "args") \
|
||||
_(ZEND_STR_UNKNOWN, "unknown") \
|
||||
_(ZEND_STR_UNKNOWN_CAPITALIZED, "Unknown") \
|
||||
_(ZEND_STR_EVAL, "eval") \
|
||||
_(ZEND_STR_INCLUDE, "include") \
|
||||
_(ZEND_STR_REQUIRE, "require") \
|
||||
|
|
|
@ -122,7 +122,7 @@ static zend_class_entry* (*accelerator_orig_inheritance_cache_get)(zend_class_en
|
|||
static zend_class_entry* (*accelerator_orig_inheritance_cache_add)(zend_class_entry *ce, zend_class_entry *proto, zend_class_entry *parent, zend_class_entry **traits_and_interfaces, HashTable *dependencies);
|
||||
static zend_result (*accelerator_orig_zend_stream_open_function)(zend_file_handle *handle );
|
||||
static zend_string *(*accelerator_orig_zend_resolve_path)(zend_string *filename);
|
||||
static void (*accelerator_orig_zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
static void (*accelerator_orig_zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
static zif_handler orig_chdir = NULL;
|
||||
static ZEND_INI_MH((*orig_include_path_on_modify)) = NULL;
|
||||
static zend_result (*orig_post_startup_cb)(void);
|
||||
|
@ -1686,12 +1686,12 @@ static void zend_accel_set_auto_globals(int mask)
|
|||
ZCG(auto_globals_mask) |= mask;
|
||||
}
|
||||
|
||||
static void persistent_error_cb(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message) {
|
||||
static void persistent_error_cb(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) {
|
||||
if (ZCG(record_warnings)) {
|
||||
zend_recorded_warning *warning = emalloc(sizeof(zend_recorded_warning));
|
||||
warning->type = type;
|
||||
warning->error_lineno = error_lineno;
|
||||
warning->error_filename = zend_string_init(error_filename, strlen(error_filename), 0);
|
||||
warning->error_filename = zend_string_copy(error_filename);
|
||||
warning->error_message = zend_string_copy(message);
|
||||
|
||||
ZCG(num_warnings)++;
|
||||
|
@ -1705,7 +1705,7 @@ static void replay_warnings(zend_persistent_script *script) {
|
|||
for (uint32_t i = 0; i < script->num_warnings; i++) {
|
||||
zend_recorded_warning *warning = script->warnings[i];
|
||||
accelerator_orig_zend_error_cb(
|
||||
warning->type, ZSTR_VAL(warning->error_filename), warning->error_lineno,
|
||||
warning->type, warning->error_filename, warning->error_lineno,
|
||||
warning->error_message);
|
||||
}
|
||||
}
|
||||
|
@ -4084,13 +4084,13 @@ static void preload_link(void)
|
|||
if (!(ce->ce_flags & ZEND_ACC_ANON_CLASS)
|
||||
&& zend_hash_exists(EG(class_table), key)) {
|
||||
zend_error_at(
|
||||
E_WARNING, ZSTR_VAL(ce->info.user.filename), ce->info.user.line_start,
|
||||
E_WARNING, ce->info.user.filename, ce->info.user.line_start,
|
||||
"Can't preload already declared class %s", ZSTR_VAL(ce->name));
|
||||
} else {
|
||||
const char *kind, *name;
|
||||
get_unlinked_dependency(ce, &kind, &name);
|
||||
zend_error_at(
|
||||
E_WARNING, ZSTR_VAL(ce->info.user.filename), ce->info.user.line_start,
|
||||
E_WARNING, ce->info.user.filename, ce->info.user.line_start,
|
||||
"Can't preload unlinked class %s: %s%s",
|
||||
ZSTR_VAL(ce->name), kind, name);
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ static void delete_service(void *service);
|
|||
static void delete_url(void *handle);
|
||||
static void delete_hashtable(void *hashtable);
|
||||
|
||||
static void soap_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
static void soap_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
|
||||
|
||||
#define SOAP_SERVER_BEGIN_CODE() \
|
||||
bool _old_handler = SOAP_GLOBAL(use_soap_error_handler);\
|
||||
|
@ -164,7 +164,7 @@ zend_class_entry* soap_var_class_entry;
|
|||
|
||||
ZEND_DECLARE_MODULE_GLOBALS(soap)
|
||||
|
||||
static void (*old_error_handler)(int, const char *, const uint32_t, zend_string *);
|
||||
static void (*old_error_handler)(int, zend_string *, const uint32_t, zend_string *);
|
||||
|
||||
PHP_RINIT_FUNCTION(soap);
|
||||
PHP_MINIT_FUNCTION(soap);
|
||||
|
@ -1799,7 +1799,7 @@ static ZEND_NORETURN void soap_server_fault(char* code, char* string, char *acto
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
|
||||
static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
|
||||
{
|
||||
bool _old_in_compilation;
|
||||
zend_execute_data *_old_current_execute_data;
|
||||
|
@ -1900,7 +1900,7 @@ static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, c
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
static void soap_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
|
||||
static void soap_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
|
||||
{
|
||||
if (EXPECTED(!SOAP_GLOBAL(use_soap_error_handler))) {
|
||||
old_error_handler(error_num, error_filename, error_lineno, message);
|
||||
|
|
24
main/main.c
24
main/main.c
|
@ -1151,7 +1151,7 @@ static void clear_last_error() {
|
|||
|
||||
#if ZEND_DEBUG
|
||||
/* {{{ report_zend_debug_error_notify_cb */
|
||||
static void report_zend_debug_error_notify_cb(int type, const char *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
static void report_zend_debug_error_notify_cb(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
|
||||
{
|
||||
if (PG(report_zend_debug)) {
|
||||
bool trigger_break;
|
||||
|
@ -1168,7 +1168,7 @@ static void report_zend_debug_error_notify_cb(int type, const char *error_filena
|
|||
break;
|
||||
}
|
||||
|
||||
zend_output_debug_string(trigger_break, "%s(%" PRIu32 ") : %s", error_filename, error_lineno, ZSTR_VAL(message));
|
||||
zend_output_debug_string(trigger_break, "%s(%" PRIu32 ") : %s", ZSTR_VAL(error_filename), error_lineno, ZSTR_VAL(message));
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -1176,7 +1176,7 @@ static void report_zend_debug_error_notify_cb(int type, const char *error_filena
|
|||
|
||||
/* {{{ php_error_cb
|
||||
extended error handling function */
|
||||
static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, const uint32_t error_lineno, zend_string *message)
|
||||
static ZEND_COLD void php_error_cb(int orig_type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message)
|
||||
{
|
||||
bool display;
|
||||
int type = orig_type & E_ALL;
|
||||
|
@ -1188,7 +1188,7 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
|
|||
if (zend_string_equals(PG(last_error_message), message)
|
||||
|| (!PG(ignore_repeated_source)
|
||||
&& ((PG(last_error_lineno) != (int)error_lineno)
|
||||
|| strcmp(PG(last_error_file), error_filename)))) {
|
||||
|| strcmp(PG(last_error_file), ZSTR_VAL(error_filename))))) {
|
||||
display = 1;
|
||||
} else {
|
||||
display = 0;
|
||||
|
@ -1223,11 +1223,11 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
|
|||
if (display) {
|
||||
clear_last_error();
|
||||
if (!error_filename) {
|
||||
error_filename = "Unknown";
|
||||
error_filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
|
||||
}
|
||||
PG(last_error_type) = type;
|
||||
PG(last_error_message) = zend_string_copy(message);
|
||||
PG(last_error_file) = strdup(error_filename);
|
||||
PG(last_error_file) = strdup(ZSTR_VAL(error_filename));
|
||||
PG(last_error_lineno) = error_lineno;
|
||||
}
|
||||
|
||||
|
@ -1287,14 +1287,14 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
|
|||
syslog(LOG_ALERT, "PHP %s: %s (%s)", error_type_str, ZSTR_VAL(message), GetCommandLine());
|
||||
}
|
||||
#endif
|
||||
spprintf(&log_buffer, 0, "PHP %s: %s in %s on line %" PRIu32, error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
|
||||
spprintf(&log_buffer, 0, "PHP %s: %s in %s on line %" PRIu32, error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
|
||||
php_log_err_with_severity(log_buffer, syslog_type_int);
|
||||
efree(log_buffer);
|
||||
}
|
||||
|
||||
if (PG(display_errors) && ((module_initialized && !PG(during_request_startup)) || (PG(display_startup_errors)))) {
|
||||
if (PG(xmlrpc_errors)) {
|
||||
php_printf("<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>" ZEND_LONG_FMT "</int></value></member><member><name>faultString</name><value><string>%s:%s in %s on line %" PRIu32 "</string></value></member></struct></value></fault></methodResponse>", PG(xmlrpc_error_number), error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
|
||||
php_printf("<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>" ZEND_LONG_FMT "</int></value></member><member><name>faultString</name><value><string>%s:%s in %s on line %" PRIu32 "</string></value></member></struct></value></fault></methodResponse>", PG(xmlrpc_error_number), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
|
||||
} else {
|
||||
char *prepend_string = INI_STR("error_prepend_string");
|
||||
char *append_string = INI_STR("error_append_string");
|
||||
|
@ -1302,22 +1302,22 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
|
|||
if (PG(html_errors)) {
|
||||
if (type == E_ERROR || type == E_PARSE) {
|
||||
zend_string *buf = escape_html(ZSTR_VAL(message), ZSTR_LEN(message));
|
||||
php_printf("%s<br />\n<b>%s</b>: %s in <b>%s</b> on line <b>%" PRIu32 "</b><br />\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(buf), error_filename, error_lineno, STR_PRINT(append_string));
|
||||
php_printf("%s<br />\n<b>%s</b>: %s in <b>%s</b> on line <b>%" PRIu32 "</b><br />\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(buf), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
|
||||
zend_string_free(buf);
|
||||
} else {
|
||||
php_printf("%s<br />\n<b>%s</b>: %s in <b>%s</b> on line <b>%" PRIu32 "</b><br />\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), error_filename, error_lineno, STR_PRINT(append_string));
|
||||
php_printf("%s<br />\n<b>%s</b>: %s in <b>%s</b> on line <b>%" PRIu32 "</b><br />\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
|
||||
}
|
||||
} else {
|
||||
/* Write CLI/CGI errors to stderr if display_errors = "stderr" */
|
||||
if ((!strcmp(sapi_module.name, "cli") || !strcmp(sapi_module.name, "cgi") || !strcmp(sapi_module.name, "phpdbg")) &&
|
||||
PG(display_errors) == PHP_DISPLAY_ERRORS_STDERR
|
||||
) {
|
||||
fprintf(stderr, "%s: %s in %s on line %" PRIu32 "\n", error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
|
||||
fprintf(stderr, "%s: %s in %s on line %" PRIu32 "\n", error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
|
||||
#ifdef PHP_WIN32
|
||||
fflush(stderr);
|
||||
#endif
|
||||
} else {
|
||||
php_printf("%s\n%s: %s in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), error_filename, error_lineno, STR_PRINT(append_string));
|
||||
php_printf("%s\n%s: %s in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue