Browse Source

port fix for #30998: Crash when user error handler returns false on amd64

PHP-5.1
Stanislav Malyshev 22 years ago
parent
commit
9e9c193e1b
  1. 11
      Zend/zend.c

11
Zend/zend.c

@ -874,6 +874,7 @@ ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval
ZEND_API void zend_error(int type, const char *format, ...)
{
va_list args;
va_list usr_copy;
zval ***params;
zval *retval;
zval *z_error_type, *z_error_message, *z_error_filename, *z_error_lineno, *z_context;
@ -943,7 +944,15 @@ ZEND_API void zend_error(int type, const char *format, ...)
ALLOC_INIT_ZVAL(z_error_lineno);
ALLOC_INIT_ZVAL(z_context);
z_error_message->value.str.len = zend_vspprintf(&z_error_message->value.str.val, 0, format, args);
#if defined(va_copy)
va_copy(usr_copy, args);
#else
usr_copy = args;
#endif
z_error_message->value.str.len = zend_vspprintf(&z_error_message->value.str.val, 0, format, usr_copy);
#if defined(va_copy)
va_end(usr_copy);
#endif
z_error_message->type = IS_STRING;
z_error_type->value.lval = type;

Loading…
Cancel
Save