mirror of
https://github.com/php/php-src.git
synced 2024-11-28 12:26:37 +08:00
HTTP 500 is sent to browser in case of PHP error instead of blank page
This commit is contained in:
parent
1fe8fded5f
commit
e1f08c8297
2
NEWS
2
NEWS
@ -1,6 +1,8 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? 2007, PHP 5.2.4
|
||||
- HTTP 500 is sent to browser in case of PHP error instead of blank page.
|
||||
(Dmitry, Andrei Nigmatulin)
|
||||
- Improved fix for MOPB-03-2007. (Ilia)
|
||||
- Corrected fix for CVE-2007-2872. (Ilia)
|
||||
- Enabled statement cache for non-persistent OCI8 connections.
|
||||
|
25
main/main.c
25
main/main.c
@ -834,17 +834,28 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
|
||||
/* no break - intentionally */
|
||||
case E_ERROR:
|
||||
case E_RECOVERABLE_ERROR:
|
||||
/* case E_PARSE: the parser would return 1 (failure), we can bail out nicely */
|
||||
case E_PARSE:
|
||||
case E_COMPILE_ERROR:
|
||||
case E_USER_ERROR:
|
||||
EG(exit_status) = 255;
|
||||
if (module_initialized) {
|
||||
/* restore memory limit */
|
||||
zend_set_memory_limit(PG(memory_limit));
|
||||
efree(buffer);
|
||||
zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC);
|
||||
zend_bailout();
|
||||
return;
|
||||
if (!SG(headers_sent) &&
|
||||
SG(sapi_headers).http_response_code == 200) {
|
||||
sapi_header_line ctr = {0};
|
||||
|
||||
ctr.line = "HTTP/1.0 500 Internal Server Error";
|
||||
ctr.line_len = strlen(ctr.line);
|
||||
sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC);
|
||||
}
|
||||
/* the parser would return 1 (failure), we can bail out nicely */
|
||||
if (type != E_PARSE) {
|
||||
/* restore memory limit */
|
||||
zend_set_memory_limit(PG(memory_limit));
|
||||
efree(buffer);
|
||||
zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC);
|
||||
zend_bailout();
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user