|
|
|
@ -525,6 +525,24 @@ static void xc_sandbox_error_cb(int type, const char *error_filename, const uint
|
|
|
|
|
|
|
|
|
|
sandbox = (xc_sandbox_t *) XG(sandbox);
|
|
|
|
|
assert(sandbox != NULL);
|
|
|
|
|
if (type != E_STRICT) {
|
|
|
|
|
/* give up, and user handler is not supported in this case */
|
|
|
|
|
int i;
|
|
|
|
|
zend_uint orig_lineno = CG(zend_lineno);
|
|
|
|
|
zend_error_cb = sandbox->orig_zend_error_cb;
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < sandbox->compilererror_cnt; i ++) {
|
|
|
|
|
compilererror = &sandbox->compilererrors[i];
|
|
|
|
|
CG(zend_lineno) = compilererror->lineno;
|
|
|
|
|
zend_error(E_STRICT, "%s", compilererror->error);
|
|
|
|
|
}
|
|
|
|
|
CG(zend_lineno) = orig_lineno;
|
|
|
|
|
sandbox->compilererror_cnt = 0;
|
|
|
|
|
|
|
|
|
|
sandbox->orig_zend_error_cb(type, error_filename, error_lineno, format, args);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (sandbox->compilererror_cnt <= sandbox->compilererror_size) {
|
|
|
|
|
if (sandbox->compilererror_size) {
|
|
|
|
|
sandbox->compilererror_size += 16;
|
|
|
|
@ -536,7 +554,6 @@ static void xc_sandbox_error_cb(int type, const char *error_filename, const uint
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
compilererror = &sandbox->compilererrors[sandbox->compilererror_cnt++];
|
|
|
|
|
compilererror->type = type;
|
|
|
|
|
compilererror->lineno = error_lineno;
|
|
|
|
|
compilererror->error_len = zend_vspprintf(&compilererror->error, 0, format, args);
|
|
|
|
|
}
|
|
|
|
@ -720,7 +737,7 @@ static void xc_sandbox_install(xc_sandbox_t *sandbox, xc_install_action_t instal
|
|
|
|
|
for (i = 0; i < sandbox->compilererror_cnt; i ++) {
|
|
|
|
|
xc_compilererror_t *error = &sandbox->compilererrors[i];
|
|
|
|
|
CG(zend_lineno) = error->lineno;
|
|
|
|
|
zend_error(error->type, "%s", error->error);
|
|
|
|
|
zend_error(E_STRICT, "%s", error->error);
|
|
|
|
|
}
|
|
|
|
|
CG(zend_lineno) = 0;
|
|
|
|
|
#endif
|
|
|
|
|