summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Jenkins <alan.christopher.jenkins@gmail.com>2012-04-30 17:04:43 +0200
committerAlan Jenkins <alan.christopher.jenkins@gmail.com>2012-05-16 13:40:30 +0200
commit04d4091dfa551475998c351e09858e5ebdcf4482 (patch)
treebeabc46f6e973f70aee1d8d49ac7cd8bf06403f5
parentb3d7443021c948134f14dfa83afda39f0f51fc80 (diff)
fix backtrace filtering
The backtrace was filtered to remove CI system files, but the filter was buggy. It would also filter out application files which happened to contain the string "system"... or ALL files, if the application directory is under /system/ (Perhaps the latter comes as a surprise, but it's explicitly mentioned in index.php and <http://codeigniter.com/wiki/mod_rewrite>). Instead, we should test whether the file is underneath BASEPATH (using realpath() to make sure we have the same sort of slashes).
-rw-r--r--application/errors/error_php.php5
1 files changed, 4 insertions, 1 deletions
diff --git a/application/errors/error_php.php b/application/errors/error_php.php
index 3855720de..b76dc8a9e 100644
--- a/application/errors/error_php.php
+++ b/application/errors/error_php.php
@@ -40,12 +40,15 @@
<p>Backtrace: </p>
<?php foreach(debug_backtrace() as $error): ?>
- <?php if(isset($error['file']) && ! stristr($error['file'], SYSDIR)): ?>
+ <?php if(isset($error['file']) &&
+ strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
+
<p style="margin-left:10px">
File: <?php echo $error['file'] ?><br />
Line: <?php echo $error['line'] ?><br />
Function: <?php echo $error['function'] ?>
</p>
+
<?php endif ?>
<?php endforeach ?></p>