fixed allowed memory size extended error, if trying to read history from a ldap or ads contact with an id starting with a letter, did an unlimited query for all history-log entries of addressbook

This commit is contained in:
Ralf Becker 2013-06-29 16:41:54 +00:00
parent 3e7651060c
commit 1bbe643808

View File

@ -132,7 +132,7 @@ class historylog
*/
function search($filter,$order='history_id',$sort='DESC')
{
if (!is_array($filter)) $filter = (int)$filter ? array('history_record_id' => $filter) : array();
if (!is_array($filter)) $filter = is_numeric($filter) ? array('history_record_id' => $filter) : array();
if (!$_orderby || !preg_match('/^[a-z0-9_]+$/i',$_orderby) || !preg_match('/^(asc|desc)?$/i',$sort))
{
@ -152,6 +152,9 @@ class historylog
}
if (!isset($filter['history_appname'])) $filter['history_appname'] = $this->appname;
// do not try to read all history entries of an app
if (!$filter['history_record_id']) return array();
$rows = array();
foreach($this->db->select(self::TABLE,'*',$filter,__LINE__,__FILE__,false,$orderby) as $row)
{
@ -218,7 +221,10 @@ class historylog
*/
function return_array($filter_out,$only_show,$_orderby,$sort, $record_id)
{
if (!is_numeric($record_id))
{
return array();
}
if (!$_orderby || !preg_match('/^[a-z0-9_]+$/i',$_orderby) || !preg_match('/^(asc|desc)?$/i',$sort))
{
$orderby = 'ORDER BY history_timestamp,history_id';