ChangeSet ID: 28239 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@winehq.org 2006/09/25 21:10:59
Modified files: include : query.php
Log message: Chris Morgan cmorgan@alum.wpi.edu query_error() can infinitely recurse as errors are inserted into the database and if the database doesn't exist then the db insertion will fail and result in a call to query_error(). Once we've entered query_error() once if we enter it again we should simply return
Patch: http://cvs.winehq.org/patch.py?id=28239
Old revision New revision Changes Path 1.7 1.8 +12 -0 appdb/include/query.php
Index: appdb/include/query.php diff -u -p appdb/include/query.php:1.7 appdb/include/query.php:1.8 --- appdb/include/query.php:1.7 26 Sep 2006 2:10:59 -0000 +++ appdb/include/query.php 26 Sep 2006 2:10:59 -0000 @@ -138,6 +138,16 @@ function query_bugzilladb($sQuery,$sComm
function query_error($sQuery, $sComment="") { + static $bInQueryError = false; + + // if we are already reporting an error we can't report it again + // as that indicates that error reporting itself produced an error + if($bInQueryError) + return; + + // record that we are inside of this function, we don't want to recurse + $bInQueryError = true; + error_log::log_error(ERROR_SQL, "Query: '".$sQuery."' ". "mysql_errno(): '".mysql_errno()."' ". "mysql_error(): '".mysql_error()."' ". @@ -145,6 +155,8 @@ function query_error($sQuery, $sComment=
$sStatusMessage = "<p><b>An internal error has occurred and has been logged and reported to appdb admins</b></p>"; addmsg($sStatusMessage); + + $bInQueryError = false; // clear variable upon exit }
?>