mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 00:55:19 +00:00
issue #319 - NOTE: this does not fix the issue, it only reports it and continues. We need to examine any logger statements that contain 'stack:' as a result of reporting this issue and find and fix the original problem - which is that set_pconfig is being called without a valid $uid. I'm worried that since we will now continue on without throwing a PHP error that nobody will ever notice or find the problem that is causing this.
This commit is contained in:
parent
08461c7049
commit
6a6dbec033
4 changed files with 32 additions and 11 deletions
|
@ -287,6 +287,17 @@ function get_pconfig($uid, $family, $key, $instore = false) {
|
|||
function set_pconfig($uid, $family, $key, $value) {
|
||||
global $a;
|
||||
|
||||
// this catches subtle errors where this function has been called
|
||||
// with local_channel() when not logged in (which returns false)
|
||||
// and throws an error in array_key_exists below.
|
||||
// we provide a function backtrace in the logs so that we can find
|
||||
// and fix the calling function.
|
||||
|
||||
if($uid === false) {
|
||||
btlogger('UID is FALSE!', LOGGER_NORMAL, LOG_ERR);
|
||||
return;
|
||||
}
|
||||
|
||||
// manage array value
|
||||
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
|
||||
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
|
||||
|
|
|
@ -25,16 +25,7 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') {
|
|||
if(! $verify) {
|
||||
while($msg = openssl_error_string())
|
||||
logger('openssl_verify: ' . $msg,LOGGER_NORMAL,LOG_ERR);
|
||||
logger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR);
|
||||
// provide a backtrace so that we can debug key issues
|
||||
if(version_compare(PHP_VERSION, '5.4.0') >= 0) {
|
||||
$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||
if($stack) {
|
||||
foreach($stack as $s) {
|
||||
logger('stack: ' . basename($s['file']) . ':' . $s['line'] . ':' . $s['function'] . '()',LOGGER_DEBUG,LOG_ERR);
|
||||
}
|
||||
}
|
||||
}
|
||||
btlogger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR);
|
||||
}
|
||||
|
||||
return $verify;
|
||||
|
|
|
@ -569,6 +569,25 @@ function logger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) {
|
|||
@file_put_contents($pluginfo['filename'], $pluginfo['message'], FILE_APPEND);
|
||||
}
|
||||
|
||||
// like logger() but with a function backtrace to pinpoint certain classes
|
||||
// of problems which show up deep in the calling stack
|
||||
|
||||
|
||||
function btlogger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) {
|
||||
|
||||
logger($msg, $level, $priority);
|
||||
if(version_compare(PHP_VERSION, '5.4.0') >= 0) {
|
||||
$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||
if($stack) {
|
||||
for($x = 1; $x < count($stack); $x ++) {
|
||||
logger('stack: ' . basename($stack[$x]['file']) . ':' . $stack[$x]['line'] . ':' . $stack[$x]['function'] . '()',$level, $priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function log_priority_str($priority) {
|
||||
$parr = array(
|
||||
LOG_EMERG => 'LOG_EMERG',
|
||||
|
|
|
@ -1 +1 @@
|
|||
2016-03-29.1350H
|
||||
2016-03-30.1351H
|
||||
|
|
Loading…
Reference in a new issue