diff options
author | Alan Jenkins <alan.christopher.jenkins@gmail.com> | 2012-04-30 17:04:43 +0200 |
---|---|---|
committer | Alan Jenkins <alan.christopher.jenkins@gmail.com> | 2012-05-16 13:40:30 +0200 |
commit | 04d4091dfa551475998c351e09858e5ebdcf4482 (patch) | |
tree | beabc46f6e973f70aee1d8d49ac7cd8bf06403f5 /application/errors/error_php.php | |
parent | b3d7443021c948134f14dfa83afda39f0f51fc80 (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).
Diffstat (limited to 'application/errors/error_php.php')
-rw-r--r-- | application/errors/error_php.php | 5 |
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> |