summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--:q9
-rw-r--r--inc/error.php25
-rw-r--r--post.php2
3 files changed, 18 insertions, 18 deletions
diff --git a/:q b/:q
deleted file mode 100644
index 1423a79e..00000000
--- a/:q
+++ /dev/null
@@ -1,9 +0,0 @@
-
-# Please enter the commit message for your changes. Lines starting
-# with '#' will be ignored, and an empty message aborts the commit.
-# On branch installfix
-# Changes to be committed:
-# modified: install.php
-This prevents a crash due to instance-config.php not existing, it will now check if the file exists and if not creates the file
-
-
diff --git a/inc/error.php b/inc/error.php
index 9452e393..5138592c 100644
--- a/inc/error.php
+++ b/inc/error.php
@@ -15,15 +15,32 @@ function exception_handler(Exception $e){
set_exception_handler('exception_handler');
+function fatal_error_handler(){
+ if (($error = error_get_last()) && $error['type'] == E_ERROR) {
+ error('Caught fatal error: ' . $error['message'] . ' in ' . $error['file'] . ' at line ' . $error['line']);
+ }
+}
+
+register_shutdown_function('fatal_error_handler');
+
$error_recursion=false;
function error($message, $priority = true, $debug_stuff = false) {
global $board, $mod, $config, $db_error, $error_recursion;
+
if($error_recursion!==false){
die("Error recursion detected with " . $message . "<br>Original error:".$error_recursion);
}
+
$error_recursion=$message;
+ if (defined('STDIN')) {
+ // Running from CLI
+ echo('Error: ' . $message . "\n");
+ debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
+ die();
+ }
+
if(!empty($config)){
if ($config['syslog'] && $priority !== false) {
@@ -31,13 +48,6 @@ function error($message, $priority = true, $debug_stuff = false) {
_syslog($priority !== true ? $priority : LOG_NOTICE, $message);
}
- if (defined('STDIN')) {
- // Running from CLI
- echo('Error: ' . $message . "\n");
- debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- die();
- }
-
if ($config['debug']) {
$debug_stuff=array();
if(isset($db_error)){
@@ -55,7 +65,6 @@ function error($message, $priority = true, $debug_stuff = false) {
}
}
- // Is there a reason to disable this?
if (isset($_POST['json_response'])) {
header('Content-Type: text/json; charset=utf-8');
$data=array('error'=>$message);
diff --git a/post.php b/post.php
index 0022f178..99ef4850 100644
--- a/post.php
+++ b/post.php
@@ -325,7 +325,7 @@ if (isset($_POST['delete'])) {
$post['file_tmp'] = tempnam($config['tmp'], 'url');
function unlink_tmp_file($file) {
@unlink($file);
- error();
+ fatal_error_handler();
}
register_shutdown_function('unlink_tmp_file', $post['file_tmp']);