summaryrefslogtreecommitdiffstats
path: root/main/zabbix
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-10-08 13:30:35 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-10-08 13:52:31 +0000
commitfabb8ff676a0d9dda8c25c7e26c60ca37e811bbd (patch)
treeb1b42cd2319472489a13883a7ea054eb9074dfb0 /main/zabbix
parente7849caa0ff6bd77ef87e8a121c1a73579f5705b (diff)
downloadaports-fabb8ff676a0d9dda8c25c7e26c60ca37e811bbd.tar.bz2
aports-fabb8ff676a0d9dda8c25c7e26c60ca37e811bbd.tar.xz
main/zabbix: security fix (CVE-2013-5743)
https://support.zabbix.com/browse/ZBX-7091 ref #2271
Diffstat (limited to 'main/zabbix')
-rw-r--r--main/zabbix/APKBUILD14
-rw-r--r--main/zabbix/ZBX-7091-2.0.8.patch2021
2 files changed, 2030 insertions, 5 deletions
diff --git a/main/zabbix/APKBUILD b/main/zabbix/APKBUILD
index 0cfa65428..e2ca46e7a 100644
--- a/main/zabbix/APKBUILD
+++ b/main/zabbix/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zabbix
pkgver=2.0.8
-pkgrel=2
+pkgrel=3
pkgdesc="Enterprise-class open source distributed monitoring"
url="http://www.zabbix.com"
arch="all"
@@ -27,6 +27,7 @@ source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
zabbix-server.initd
zabbix-agentd.initd
zabbix-proxy.initd
+ ZBX-7091-2.0.8.patch
"
_builddir="$srcdir"/$pkgname-$pkgver
@@ -50,7 +51,7 @@ build() {
# set default configure flags
_configure="--prefix=/usr \
--sysconfdir=/etc/zabbix \
- --mandir=/usr/share/man \
+ --mandir=/usr/share/man \
--infodir=/usr/share/info \
--enable-server \
--enable-agent \
@@ -175,7 +176,8 @@ b80eca2e260cc9e563f4b7a1b30bb158 res_send.patch
5f7b1815a309d8dade4a1d15d5048742 automake.patch
d823c2ab6c2bbdd0ebd3511fac4a83b4 zabbix-server.initd
1a5c718bcf815fcf659e14fb0b576a1a zabbix-agentd.initd
-a99978139481e69434f78fc3e8c53441 zabbix-proxy.initd"
+a99978139481e69434f78fc3e8c53441 zabbix-proxy.initd
+69f7a0d3b7747bcad5f4928a0e9c4786 ZBX-7091-2.0.8.patch"
sha256sums="c4b94960de0a1d0b20604a08503e9715c15845409368162c1e321040b8e4519a zabbix-2.0.8.tar.gz
3b09a8fdc38216d859022c5966c36f0bcb6984974208cf4c69c17129649efdf5 zabbix_server.conf
3ae307895c9a7189e29c4ebf7479ce08d4c3bbe1a7f0a3554828170dac417bab zabbix_trapper.conf
@@ -186,7 +188,8 @@ sha256sums="c4b94960de0a1d0b20604a08503e9715c15845409368162c1e321040b8e4519a za
4cd7ab9c6fa95aacab0c1f7b77bad18e9b500feca70b16c866a581775b4ad611 automake.patch
f4e18cca40cd7299140aec3077cf39429487860094d7f5d88d76d8e040dca9b8 zabbix-server.initd
4f93c4868726a3e8fed12a030cfce8911f105217a59187d6b3e1565d8d3e76b5 zabbix-agentd.initd
-60a01c08df054a0c1bcfb71e378544b4c4e489e6a6779d96383387ed34ddc0b0 zabbix-proxy.initd"
+60a01c08df054a0c1bcfb71e378544b4c4e489e6a6779d96383387ed34ddc0b0 zabbix-proxy.initd
+ae8f91f846f8a84d926c0bfe81ad6c4f8203a28efeb0b040b6fef32cfc0022fa ZBX-7091-2.0.8.patch"
sha512sums="5a65c7fcce33d98a0f441798ca83f16bb6ed31b8a1b025f39c4003a0906c148ed5ff9db41aec591f053083b6bacd3ea1a1c8b96c007c44da092bfa179693e403 zabbix-2.0.8.tar.gz
3170d56a61871e6efadf705c19f864fdecf9420c4263f2a1129245b3b55bd730d1ba5a6a26ea866fc7842c86f7745e51ea28878bb9e9267ed9176499cb75e8bb zabbix_server.conf
cd08d907838de646f65316950e8c71deae25be1701e0cc22e5fd2f636c21ef2365a537d247277bafb694cae8c5dbd22eb725c1647797ad3e4ac4b3df2084ef07 zabbix_trapper.conf
@@ -197,4 +200,5 @@ a2d8d52bacd353363c22f89ca26deffdec722144dab4899987ef4b8479d0b0722007bf3e97f75403
7aa59336e92d83eddff4bc18038820cfc25dc50f45327a2c0a6aa0e360fa742c9724d25e84152e3a14193c88ea5d6e66fdb99f2900c0bf8199cb2adf9e143415 automake.patch
af0853d8c5a8b33399b87e7958a7ffd692fe18005dcc43af5f58e0fdf6bbee3dd66ec77a3840ae5e526a4c445b04425071f6796d726ff923aba9d3a78ca3c022 zabbix-server.initd
3ef0fe0c1c94f2f01a0c335a45ee0f3c0cd4b125d96b5eefa869a17efb352087a5dd18ef8e87c35e6816b6fb705b829f0a25452e7285637d3595ff4c103b7c21 zabbix-agentd.initd
-b305ea06641c6a331273f065a4a85fac92c45e107a30e85cb41be4ea36e2efbf5442c69cc6605ea3734a851808f7abba20042058d4b07832d858cdb63e98d405 zabbix-proxy.initd"
+b305ea06641c6a331273f065a4a85fac92c45e107a30e85cb41be4ea36e2efbf5442c69cc6605ea3734a851808f7abba20042058d4b07832d858cdb63e98d405 zabbix-proxy.initd
+cd960187bf234b14fd612ff3b4357ce5b1b094a9498e58a735309136b04a7f5076a8ff251edf47ede7d663d3d0fbd1e36c9c99e647dab598f4bedc634e17e24a ZBX-7091-2.0.8.patch"
diff --git a/main/zabbix/ZBX-7091-2.0.8.patch b/main/zabbix/ZBX-7091-2.0.8.patch
new file mode 100644
index 000000000..b4a2c63cd
--- /dev/null
+++ b/main/zabbix/ZBX-7091-2.0.8.patch
@@ -0,0 +1,2021 @@
+Index: frontends/php/api/classes/CGraphItem.php
+===================================================================
+--- ./frontends/php/api/classes/CGraphItem.php (revision 38884)
++++ ./frontends/php/api/classes/CGraphItem.php (working copy)
+@@ -119,7 +119,7 @@
+
+ // type
+ if (!is_null($options['type'] )) {
+- $sqlParts['where'][] = 'gi.type='.$options['type'];
++ $sqlParts['where'][] = 'gi.type='.zbx_dbstr($options['type']);
+ }
+
+ // output
+@@ -254,8 +254,8 @@
+ $dbRes = DBselect(
+ 'SELECT gi.gitemid'.
+ ' FROM graphs_items gi'.
+- ' WHERE gi.itemid='.$gitemData['itemid'].
+- ' AND gi.graphid='.$gitemData['graphid']
++ ' WHERE gi.itemid='.zbx_dbstr($gitemData['itemid']).
++ ' AND gi.graphid='.zbx_dbstr($gitemData['graphid'])
+ );
+ while ($gitem = DBfetch($dbRes)) {
+ $gitemids[$gitem['gitemid']] = $gitem['gitemid'];
+Index: frontends/php/api/classes/CEvent.php
+===================================================================
+--- ./frontends/php/api/classes/CEvent.php (revision 38884)
++++ ./frontends/php/api/classes/CEvent.php (working copy)
+@@ -232,12 +232,12 @@
+
+ // object
+ if (!is_null($options['object'])) {
+- $sqlParts['where']['o'] = 'e.object='.$options['object'];
++ $sqlParts['where']['o'] = 'e.object='.zbx_dbstr($options['object']);
+ }
+
+ // source
+ if (!is_null($options['source'])) {
+- $sqlParts['where'][] = 'e.source='.$options['source'];
++ $sqlParts['where'][] = 'e.source='.zbx_dbstr($options['source']);
+ }
+
+ // acknowledged
+@@ -255,22 +255,22 @@
+
+ // time_from
+ if (!is_null($options['time_from'])) {
+- $sqlParts['where'][] = 'e.clock>='.$options['time_from'];
++ $sqlParts['where'][] = 'e.clock>='.zbx_dbstr($options['time_from']);
+ }
+
+ // time_till
+ if (!is_null($options['time_till'])) {
+- $sqlParts['where'][] = 'e.clock<='.$options['time_till'];
++ $sqlParts['where'][] = 'e.clock<='.zbx_dbstr($options['time_till']);
+ }
+
+ // eventid_from
+ if (!is_null($options['eventid_from'])) {
+- $sqlParts['where'][] = 'e.eventid>='.$options['eventid_from'];
++ $sqlParts['where'][] = 'e.eventid>='.zbx_dbstr($options['eventid_from']);
+ }
+
+ // eventid_till
+ if (!is_null($options['eventid_till'])) {
+- $sqlParts['where'][] = 'e.eventid<='.$options['eventid_till'];
++ $sqlParts['where'][] = 'e.eventid<='.zbx_dbstr($options['eventid_till']);
+ }
+
+ // value
+Index: frontends/php/api/classes/CGraphPrototype.php
+===================================================================
+--- ./frontends/php/api/classes/CGraphPrototype.php (revision 38884)
++++ ./frontends/php/api/classes/CGraphPrototype.php (working copy)
+@@ -227,7 +227,7 @@
+
+ // type
+ if (!is_null($options['type'] )) {
+- $sqlParts['where'][] = 'g.type='.$options['type'];
++ $sqlParts['where'][] = 'g.type='.zbx_dbstr($options['type']);
+ }
+
+ // templated
+Index: frontends/php/api/classes/CItemGeneral.php
+===================================================================
+--- ./frontends/php/api/classes/CItemGeneral.php (revision 38884)
++++ ./frontends/php/api/classes/CItemGeneral.php (working copy)
+@@ -707,7 +707,7 @@
+
+ $sqlWhere = array();
+ foreach ($itemKeysByHostId as $hostId => $keys) {
+- $sqlWhere[] = '(i.hostid='.$hostId.' AND '.dbConditionString('i.key_', $keys).')';
++ $sqlWhere[] = '(i.hostid='.zbx_dbstr($hostId).' AND '.dbConditionString('i.key_', $keys).')';
+ }
+
+ if ($sqlWhere) {
+Index: frontends/php/api/classes/CHistory.php
+===================================================================
+--- ./frontends/php/api/classes/CHistory.php (revision 38884)
++++ ./frontends/php/api/classes/CHistory.php (working copy)
+@@ -169,13 +169,13 @@
+ // time_from
+ if (!is_null($options['time_from'])) {
+ $sqlParts['select']['clock'] = 'h.clock';
+- $sqlParts['where']['clock_from'] = 'h.clock>='.$options['time_from'];
++ $sqlParts['where']['clock_from'] = 'h.clock>='.zbx_dbstr($options['time_from']);
+ }
+
+ // time_till
+ if (!is_null($options['time_till'])) {
+ $sqlParts['select']['clock'] = 'h.clock';
+- $sqlParts['where']['clock_till'] = 'h.clock<='.$options['time_till'];
++ $sqlParts['where']['clock_till'] = 'h.clock<='.zbx_dbstr($options['time_till']);
+ }
+
+ // filter
+Index: frontends/php/api/classes/CTrigger.php
+===================================================================
+--- ./frontends/php/api/classes/CTrigger.php (revision 38884)
++++ ./frontends/php/api/classes/CTrigger.php (working copy)
+@@ -321,12 +321,12 @@
+
+ // lastChangeSince
+ if (!is_null($options['lastChangeSince'])) {
+- $sqlParts['where']['lastchangesince'] = 't.lastchange>'.$options['lastChangeSince'];
++ $sqlParts['where']['lastchangesince'] = 't.lastchange>'.zbx_dbstr($options['lastChangeSince']);
+ }
+
+ // lastChangeTill
+ if (!is_null($options['lastChangeTill'])) {
+- $sqlParts['where']['lastchangetill'] = 't.lastchange<'.$options['lastChangeTill'];
++ $sqlParts['where']['lastchangetill'] = 't.lastchange<'.zbx_dbstr($options['lastChangeTill']);
+ }
+
+ // withUnacknowledgedEvents
+@@ -466,7 +466,7 @@
+
+ // min_severity
+ if (!is_null($options['min_severity'])) {
+- $sqlParts['where'][] = 't.priority>='.$options['min_severity'];
++ $sqlParts['where'][] = 't.priority>='.zbx_dbstr($options['min_severity']);
+ }
+
+ // output
+Index: frontends/php/api/classes/CScript.php
+===================================================================
+--- ./frontends/php/api/classes/CScript.php (revision 38884)
++++ ./frontends/php/api/classes/CScript.php (working copy)
+@@ -114,7 +114,7 @@
+ $sqlParts['from']['hosts_groups'] = 'hosts_groups hg';
+ $sqlParts['where'][] = 'hg.groupid=r.id';
+ $sqlParts['where'][] = 'r.groupid=ug.usrgrpid';
+- $sqlParts['where'][] = 'ug.userid='.$userid;
++ $sqlParts['where'][] = 'ug.userid='.zbx_dbstr($userid);
+ $sqlParts['where'][] = '(hg.groupid=s.groupid OR s.groupid IS NULL)';
+ $sqlParts['where'][] = '(ug.usrgrpid=s.usrgrpid OR s.usrgrpid IS NULL)';
+ }
+@@ -265,7 +265,7 @@
+ 'SELECT s.scriptid'.
+ ' FROM scripts s'.
+ ' WHERE '.DBin_node('s.scriptid').
+- ' AND s.name='.$script['name']
++ ' AND s.name='.zbx_dbstr($script['name'])
+ );
+ while ($script = DBfetch($dbScripts)) {
+ $scriptids[$script['scriptid']] = $script['scriptid'];
+Index: frontends/php/api/classes/CTemplate.php
+===================================================================
+--- ./frontends/php/api/classes/CTemplate.php (revision 38884)
++++ ./frontends/php/api/classes/CTemplate.php (working copy)
+@@ -1021,7 +1021,7 @@
+
+ foreach ($template['groups'] as $group) {
+ $hostgroupid = get_dbid('hosts_groups', 'hostgroupid');
+- $result = DBexecute("INSERT INTO hosts_groups (hostgroupid, hostid, groupid) VALUES ($hostgroupid, $templateid, {$group['groupid']})");
++ $result = DBexecute('INSERT INTO hosts_groups (hostgroupid,hostid,groupid) VALUES ('.zbx_dbstr($hostgroupid).','.zbx_dbstr($templateid).','.zbx_dbstr($group['groupid']).')');
+ if (!$result) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, 'DBerror');
+ }
+Index: frontends/php/api/classes/CHostGeneral.php
+===================================================================
+--- ./frontends/php/api/classes/CHostGeneral.php (revision 38884)
++++ ./frontends/php/api/classes/CHostGeneral.php (working copy)
+@@ -261,7 +261,7 @@
+ continue;
+ }
+
+- $values = array(get_dbid('hosts_templates', 'hosttemplateid'), $targetid, $templateid);
++ $values = array(get_dbid('hosts_templates', 'hosttemplateid'), zbx_dbstr($targetid), zbx_dbstr($templateid));
+ $sql = 'INSERT INTO hosts_templates VALUES ('.implode(', ', $values).')';
+ $result = DBexecute($sql);
+
+Index: frontends/php/api/classes/CUser.php
+===================================================================
+--- ./frontends/php/api/classes/CUser.php (revision 38884)
++++ ./frontends/php/api/classes/CUser.php (working copy)
+@@ -507,7 +507,8 @@
+ $usrgrps = zbx_objectValues($user['usrgrps'], 'usrgrpid');
+ foreach ($usrgrps as $groupid) {
+ $usersGroupdId = get_dbid('users_groups', 'id');
+- $sql = 'INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.$usersGroupdId.','.$groupid.','.$userid.')';
++ $sql = 'INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.zbx_dbstr($usersGroupdId).','.zbx_dbstr($groupid).','.zbx_dbstr($userid).')';
++
+ if (!DBexecute($sql)) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, 'DBerror');
+ }
+@@ -516,8 +517,8 @@
+ foreach ($user['user_medias'] as $mediaData) {
+ $mediaid = get_dbid('media', 'mediaid');
+ $sql = 'INSERT INTO media (mediaid,userid,mediatypeid,sendto,active,severity,period)'.
+- ' VALUES ('.$mediaid.','.$userid.','.$mediaData['mediatypeid'].','.
+- zbx_dbstr($mediaData['sendto']).','.$mediaData['active'].','.$mediaData['severity'].','.
++ ' VALUES ('.zbx_dbstr($mediaid).','.zbx_dbstr($userid).','.zbx_dbstr($mediaData['mediatypeid']).','.
++ zbx_dbstr($mediaData['sendto']).','.zbx_dbstr($mediaData['active']).','.zbx_dbstr($mediaData['severity']).','.
+ zbx_dbstr($mediaData['period']).')';
+ if (!DBexecute($sql)) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, 'DBerror');
+@@ -577,10 +578,10 @@
+ $newUsrgrpids = zbx_objectValues($user['usrgrps'], 'usrgrpid');
+
+ // deleting all relations with groups, but not touching those, where user still must be after update
+- DBexecute('DELETE FROM users_groups WHERE userid='.$user['userid'].' AND '.dbConditionInt('usrgrpid', $newUsrgrpids, true));
++ DBexecute('DELETE FROM users_groups WHERE userid='.zbx_dbstr($user['userid']).' AND '.dbConditionInt('usrgrpid', $newUsrgrpids, true));
+
+ // getting the list of groups user is currently in
+- $dbGroupsUserIn = DBSelect('SELECT usrgrpid FROM users_groups WHERE userid='.$user['userid']);
++ $dbGroupsUserIn = DBSelect('SELECT usrgrpid FROM users_groups WHERE userid='.zbx_dbstr($user['userid']));
+ $groupsUserIn = array();
+ while ($grp = DBfetch($dbGroupsUserIn)) {
+ $groupsUserIn[$grp['usrgrpid']] = $grp['usrgrpid'];
+@@ -598,7 +599,7 @@
+ }
+
+ $usersGroupdId = get_dbid('users_groups', 'id');
+- $sql = 'INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.$usersGroupdId.','.$groupid.','.$user['userid'].')';
++ $sql = 'INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.zbx_dbstr($usersGroupdId).','.zbx_dbstr($groupid).','.zbx_dbstr($user['userid']).')';
+
+ if (!DBexecute($sql)) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, 'DBerror');
+@@ -696,8 +697,8 @@
+ $mediaid = get_dbid('media', 'mediaid');
+
+ $sql = 'INSERT INTO media (mediaid,userid,mediatypeid,sendto,active,severity,period)'.
+- ' VALUES ('.$mediaid.','.$user['userid'].','.$media['mediatypeid'].','.
+- zbx_dbstr($media['sendto']).','.$media['active'].','.$media['severity'].','.
++ ' VALUES ('.zbx_dbstr($mediaid).','.zbx_dbstr($user['userid']).','.zbx_dbstr($media['mediatypeid']).','.
++ zbx_dbstr($media['sendto']).','.zbx_dbstr($media['active']).','.zbx_dbstr($media['severity']).','.
+ zbx_dbstr($media['period']).')';
+ if (!DBexecute($sql)) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, 'DBerror');
+@@ -796,12 +797,12 @@
+
+ $result = DBexecute(
+ 'UPDATE media'.
+- ' SET mediatypeid='.$media['mediatypeid'].','.
++ ' SET mediatypeid='.zbx_dbstr($media['mediatypeid']).','.
+ ' sendto='.zbx_dbstr($media['sendto']).','.
+- ' active='.$media['active'].','.
+- ' severity='.$media['severity'].','.
++ ' active='.zbx_dbstr($media['active']).','.
++ ' severity='.zbx_dbstr($media['severity']).','.
+ ' period='.zbx_dbstr($media['period']).
+- ' WHERE mediaid='.$media['mediaid']
++ ' WHERE mediaid='.zbx_dbstr($media['mediaid'])
+ );
+ if (!$result) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, _('Cannot update user media.'));
+@@ -927,7 +928,7 @@
+ $dbAccess = DBfetch(DBselect(
+ 'SELECT MAX(g.gui_access) AS gui_access'.
+ ' FROM usrgrp g,users_groups ug'.
+- ' WHERE ug.userid='.$userInfo['userid'].
++ ' WHERE ug.userid='.zbx_dbstr($userInfo['userid']).
+ ' AND g.usrgrpid=ug.usrgrpid'
+ ));
+ if (!zbx_empty($dbAccess['gui_access'])) {
+@@ -968,7 +969,7 @@
+
+ DBexecute(
+ 'UPDATE users'.
+- ' SET attempt_failed='.$userInfo['attempt_failed'].','.
++ ' SET attempt_failed='.zbx_dbstr($userInfo['attempt_failed']).','.
+ ' attempt_clock='.time().','.
+ ' attempt_ip='.zbx_dbstr($ip).
+ ' WHERE userid='.$userInfo['userid']
+@@ -980,7 +981,7 @@
+
+ // start session
+ $sessionid = md5(time().$password.$name.rand(0, 10000000));
+- DBexecute('INSERT INTO sessions (sessionid,userid,lastaccess,status) VALUES ('.zbx_dbstr($sessionid).','.$userInfo['userid'].','.time().','.ZBX_SESSION_ACTIVE.')');
++ DBexecute('INSERT INTO sessions (sessionid,userid,lastaccess,status) VALUES ('.zbx_dbstr($sessionid).','.zbx_dbstr($userInfo['userid']).','.time().','.ZBX_SESSION_ACTIVE.')');
+
+ add_audit(AUDIT_ACTION_LOGIN, AUDIT_RESOURCE_USER, _s('Correct login "%s".', $name));
+
+@@ -990,7 +991,7 @@
+ $userData['userid'] = $userInfo['userid'];
+
+ if ($userInfo['attempt_failed']) {
+- DBexecute('UPDATE users SET attempt_failed=0 WHERE userid='.$userInfo['userid']);
++ DBexecute('UPDATE users SET attempt_failed=0 WHERE userid='.zbx_dbstr($userInfo['userid']));
+ }
+
+ CWebUser::$data = self::$userData = $userData;
+@@ -1035,16 +1036,16 @@
+ }
+
+ if ($userInfo['autologout'] > 0) {
+- DBexecute('DELETE FROM sessions WHERE userid='.$userInfo['userid'].' AND lastaccess<'.(time() - $userInfo['autologout']));
++ DBexecute('DELETE FROM sessions WHERE userid='.zbx_dbstr($userInfo['userid']).' AND lastaccess<'.(time() - $userInfo['autologout']));
+ }
+
+- DBexecute('UPDATE sessions SET lastaccess='.time().' WHERE userid='.$userInfo['userid'].' AND sessionid='.zbx_dbstr($sessionid));
++ DBexecute('UPDATE sessions SET lastaccess='.time().' WHERE userid='.zbx_dbstr($userInfo['userid']).' AND sessionid='.zbx_dbstr($sessionid));
+ }
+
+ $dbAccess = DBfetch(DBselect(
+ 'SELECT MAX(g.gui_access) AS gui_access'.
+ ' FROM usrgrp g,users_groups ug'.
+- ' WHERE ug.userid='.$userInfo['userid'].
++ ' WHERE ug.userid='.zbx_dbstr($userInfo['userid']).
+ ' AND g.usrgrpid=ug.usrgrpid'
+ ));
+ if (!zbx_empty($dbAccess['gui_access'])) {
+@@ -1070,13 +1071,13 @@
+ 'SELECT u.userid,u.alias,u.name,u.surname,u.url,u.autologin,u.autologout,u.lang,u.refresh,u.type,'.
+ ' u.theme,u.attempt_failed,u.attempt_ip,u.attempt_clock,u.rows_per_page'.
+ ' FROM users u'.
+- ' WHERE u.userid='.$userid
++ ' WHERE u.userid='.zbx_dbstr($userid)
+ ));
+
+ $userData['debug_mode'] = (bool) DBfetch(DBselect(
+ 'SELECT ug.userid'.
+ ' FROM usrgrp g,users_groups ug'.
+- ' WHERE ug.userid='.$userid.
++ ' WHERE ug.userid='.zbx_dbstr($userid).
+ ' AND g.usrgrpid=ug.usrgrpid'.
+ ' AND g.debug_mode='.GROUP_DEBUG_MODE_ENABLED
+ ));
+Index: frontends/php/api/classes/CImage.php
+===================================================================
+--- ./frontends/php/api/classes/CImage.php (revision 38884)
++++ ./frontends/php/api/classes/CImage.php (working copy)
+@@ -314,9 +314,9 @@
+
+ $imageid = get_dbid('images', 'imageid');
+ $values = array(
+- 'imageid' => $imageid,
++ 'imageid' => zbx_dbstr($imageid),
+ 'name' => zbx_dbstr($image['name']),
+- 'imagetype' => $image['imagetype'],
++ 'imagetype' => zbx_dbstr($image['imagetype'])
+ );
+
+ switch ($DB['TYPE']) {
+@@ -423,7 +423,7 @@
+
+ $values = array();
+ if (isset($image['name'])) $values['name'] = zbx_dbstr($image['name']);
+- if (isset($image['imagetype'])) $values['imagetype'] = $image['imagetype'];
++ if (isset($image['imagetype'])) $values['imagetype'] = zbx_dbstr($image['imagetype']);
+
+ if (isset($image['image'])) {
+ // decode BASE64
+@@ -443,7 +443,7 @@
+ $values['image'] = zbx_dbstr($image['image']);
+ break;
+ case ZBX_DB_ORACLE:
+- $sql = 'SELECT image FROM images WHERE imageid = '.$image['imageid'].' FOR UPDATE';
++ $sql = 'SELECT image FROM images WHERE imageid = '.zbx_dbstr($image['imageid']).' FOR UPDATE';
+
+ if (!$stmt = oci_parse($DB['DB'], $sql)) {
+ $e = oci_error($DB['DB']);
+@@ -464,7 +464,7 @@
+ $row['IMAGE']->free();
+ break;
+ case ZBX_DB_DB2:
+- $stmt = db2_prepare($DB['DB'], 'UPDATE images SET image=? WHERE imageid='.$image['imageid']);
++ $stmt = db2_prepare($DB['DB'], 'UPDATE images SET image=? WHERE imageid='.zbx_dbstr($image['imageid']));
+
+ if (!$stmt) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, db2_conn_errormsg($DB['DB']));
+@@ -486,7 +486,7 @@
+ foreach ($values as $field => $value) {
+ $sqlUpd[] = $field.'='.$value;
+ }
+- $sql = 'UPDATE images SET '.implode(', ', $sqlUpd).' WHERE imageid='.$image['imageid'];
++ $sql = 'UPDATE images SET '.implode(', ', $sqlUpd).' WHERE imageid='.zbx_dbstr($image['imageid']);
+ $result = DBexecute($sql);
+
+ if (!$result) {
+Index: frontends/php/api/classes/CMapElement.php
+===================================================================
+--- ./frontends/php/api/classes/CMapElement.php (revision 38884)
++++ ./frontends/php/api/classes/CMapElement.php (working copy)
+@@ -586,7 +586,7 @@
+
+ $sql = 'SELECT elementid, elementtype '.
+ ' FROM sysmaps_elements '.
+- ' WHERE sysmapid='.$elementid .
++ ' WHERE sysmapid='.zbx_dbstr($elementid) .
+ ' AND elementtype='.SYSMAP_ELEMENT_TYPE_MAP;
+ $dbElements = DBselect($sql);
+
+Index: frontends/php/api/classes/CTriggerPrototype.php
+===================================================================
+--- ./frontends/php/api/classes/CTriggerPrototype.php (revision 38884)
++++ ./frontends/php/api/classes/CTriggerPrototype.php (working copy)
+@@ -423,7 +423,7 @@
+
+ // min_severity
+ if (!is_null($options['min_severity'])) {
+- $sqlParts['where'][] = 't.priority>='.$options['min_severity'];
++ $sqlParts['where'][] = 't.priority>='.zbx_dbstr($options['min_severity']);
+ }
+
+ // output
+Index: frontends/php/api/classes/CUserGroup.php
+===================================================================
+--- ./frontends/php/api/classes/CUserGroup.php (revision 38884)
++++ ./frontends/php/api/classes/CUserGroup.php (working copy)
+@@ -144,7 +144,7 @@
+
+ // status
+ if (!is_null($options['status'])) {
+- $sqlParts['where'][] = 'g.users_status='.$options['status'];
++ $sqlParts['where'][] = 'g.users_status='.zbx_dbstr($options['status']);
+ }
+
+ // with_gui_access
+Index: frontends/php/api/classes/CGraph.php
+===================================================================
+--- ./frontends/php/api/classes/CGraph.php (revision 38884)
++++ ./frontends/php/api/classes/CGraph.php (working copy)
+@@ -209,7 +209,7 @@
+
+ // type
+ if (!is_null($options['type'])) {
+- $sqlParts['where'][] = 'g.type='.$options['type'];
++ $sqlParts['where'][] = 'g.type='.zbx_dbstr($options['type']);
+ }
+
+ // templated
+Index: frontends/php/api/classes/CApplication.php
+===================================================================
+--- ./frontends/php/api/classes/CApplication.php (revision 38884)
++++ ./frontends/php/api/classes/CApplication.php (working copy)
+@@ -719,7 +719,7 @@
+ DB::insert('items_applications', $appsInsert);
+
+ foreach ($itemids as $inum => $itemid) {
+- $dbChilds = DBselect('SELECT i.itemid,i.hostid FROM items i WHERE i.templateid='.$itemid);
++ $dbChilds = DBselect('SELECT i.itemid,i.hostid FROM items i WHERE i.templateid='.zbx_dbstr($itemid));
+ while ($child = DBfetch($dbChilds)) {
+ $dbApps = DBselect(
+ 'SELECT a1.applicationid'.
+Index: frontends/php/api/classes/CAlert.php
+===================================================================
+--- ./frontends/php/api/classes/CAlert.php (revision 38884)
++++ ./frontends/php/api/classes/CAlert.php (working copy)
+@@ -237,12 +237,12 @@
+
+ // time_from
+ if (!is_null($options['time_from'])) {
+- $sqlParts['where'][] = 'a.clock>'.$options['time_from'];
++ $sqlParts['where'][] = 'a.clock>'.zbx_dbstr($options['time_from']);
+ }
+
+ // time_till
+ if (!is_null($options['time_till'])) {
+- $sqlParts['where'][] = 'a.clock<'.$options['time_till'];
++ $sqlParts['where'][] = 'a.clock<'.zbx_dbstr($options['time_till']);
+ }
+
+ // output
+Index: frontends/php/api/classes/CWebCheck.php
+===================================================================
+--- ./frontends/php/api/classes/CWebCheck.php (revision 38884)
++++ ./frontends/php/api/classes/CWebCheck.php (working copy)
+@@ -347,7 +347,7 @@
+ $dbCheckItems = DBselect(
+ 'SELECT i.itemid,hi.type'.
+ ' FROM items i,httptestitem hi'.
+- ' WHERE hi.httptestid='.$httpTest['httptestid'].
++ ' WHERE hi.httptestid='.zbx_dbstr($httpTest['httptestid']).
+ ' AND hi.itemid=i.itemid'
+ );
+ while ($checkitem = DBfetch($dbCheckItems)) {
+@@ -696,7 +696,7 @@
+
+ $sql = 'SELECT h.httpstepid,h.name'.
+ ' FROM httpstep h'.
+- ' WHERE h.httptestid='.$httpTest['httptestid'].
++ ' WHERE h.httptestid='.zbx_dbstr($httpTest['httptestid']).
+ ' AND '.dbConditionString('h.name', $webstepsNames);
+ if ($httpstepData = DBfetch(DBselect($sql))) {
+ self::exception(ZBX_API_ERROR_PARAMETERS, _s('Step "%s" already exists.', $httpstepData['name']));
+@@ -820,7 +820,7 @@
+ $dbStepItems = DBselect(
+ 'SELECT i.itemid,hi.type'.
+ ' FROM items i,httpstepitem hi'.
+- ' WHERE hi.httpstepid='.$webstep['webstepid'].
++ ' WHERE hi.httpstepid='.zbx_dbstr($webstep['webstepid']).
+ ' AND hi.itemid=i.itemid'
+ );
+ while ($stepitem = DBfetch($dbStepItems)) {
+Index: frontends/php/api/classes/CTemplateScreen.php
+===================================================================
+--- ./frontends/php/api/classes/CTemplateScreen.php (revision 38884)
++++ ./frontends/php/api/classes/CTemplateScreen.php (working copy)
+@@ -618,7 +618,7 @@
+ 'SELECT src.itemid as srcid,dest.itemid as destid'.
+ ' FROM items dest,items src'.
+ ' WHERE dest.key_=src.key_'.
+- ' AND dest.hostid='.$templateId.
++ ' AND dest.hostid='.zbx_dbstr($templateId).
+ ' AND '.dbConditionInt('src.itemid', $resourceItemIds)
+ );
+ while ($dbItem = DBfetch($dbItems)) {
+@@ -633,7 +633,7 @@
+ ' WHERE dest.name=src.name'.
+ ' AND destgi.graphid=dest.graphid'.
+ ' AND destgi.itemid=desti.itemid'.
+- ' AND desti.hostid='.$templateId.
++ ' AND desti.hostid='.zbx_dbstr($templateId).
+ ' AND '.dbConditionInt('src.graphid', $resourceGraphIds)
+ );
+ while ($dbItem = DBfetch($dbItems)) {
+Index: frontends/php/include/items.inc.php
+===================================================================
+--- ./frontends/php/include/items.inc.php (revision 38884)
++++ ./frontends/php/include/items.inc.php (working copy)
+@@ -224,7 +224,7 @@
+ while ($item = DBfetch($db_items)) {
+ $old_status = $item['status'];
+ if ($status != $old_status) {
+- $result &= DBexecute('UPDATE items SET status='.$status.
++ $result &= DBexecute('UPDATE items SET status='.zbx_dbstr($status).
+ ($status != ITEM_STATUS_NOTSUPPORTED ? ",error=''" : '').
+ ' WHERE itemid='.$item['itemid']);
+ if ($result) {
+@@ -420,7 +420,7 @@
+ }
+
+ function get_item_by_itemid($itemid) {
+- $db_items = DBfetch(DBselect('SELECT i.* FROM items i WHERE i.itemid='.$itemid));
++ $db_items = DBfetch(DBselect('SELECT i.* FROM items i WHERE i.itemid='.zbx_dbstr($itemid)));
+ if ($db_items) {
+ return $db_items;
+ }
+@@ -436,7 +436,7 @@
+ 'i.formula,i.trends,i.logtimefmt,i.valuemapid,i.delay_flex,i.params,i.ipmi_sensor,i.templateid,'.
+ 'i.authtype,i.username,i.password,i.publickey,i.privatekey,i.flags,i.filter,i.description,i.inventory_link'.
+ ' FROM items i'.
+- ' WHERE i.itemid='.$itemid));
++ ' WHERE i.itemid='.zbx_dbstr($itemid)));
+ if ($row) {
+ return $row;
+ }
+@@ -469,7 +469,7 @@
+ $db_items = DBselect(
+ 'SELECT src.*'.
+ ' FROM items src,items dest'.
+- ' WHERE dest.itemid='.$itemid.
++ ' WHERE dest.itemid='.zbx_dbstr($itemid).
+ ' AND src.key_=dest.key_'.
+ ' AND '.dbConditionInt('src.hostid', $dest_hostids)
+ );
+@@ -838,7 +838,7 @@
+ 'SELECT a1.applicationid'.
+ ' FROM applications a1,applications a2'.
+ ' WHERE a1.name=a2.name'.
+- ' AND a1.hostid='.$hostid.
++ ' AND a1.hostid='.zbx_dbstr($hostid).
+ ' AND '.dbConditionInt('a2.applicationid', $applications)
+ );
+ while ($app = DBfetch($db_apps)) {
+@@ -986,9 +986,9 @@
+ if ($last == 0) {
+ $sql = 'SELECT value'.
+ ' FROM '.$table.
+- ' WHERE itemid='.$db_item['itemid'].
+- ' AND clock='.$clock.
+- ' AND ns='.$ns;
++ ' WHERE itemid='.zbx_dbstr($db_item['itemid']).
++ ' AND clock='.zbx_dbstr($clock).
++ ' AND ns='.zbx_dbstr($ns);
+ if (null != ($row = DBfetch(DBselect($sql, 1)))) {
+ $value = $row['value'];
+ }
+@@ -1000,17 +1000,17 @@
+
+ $sql = 'SELECT DISTINCT clock'.
+ ' FROM '.$table.
+- ' WHERE itemid='.$db_item['itemid'].
+- ' AND clock='.$clock.
+- ' AND ns<'.$ns;
++ ' WHERE itemid='.zbx_dbstr($db_item['itemid']).
++ ' AND clock='.zbx_dbstr($clock).
++ ' AND ns<'.zbx_dbstr($ns);
+ if (null != ($row = DBfetch(DBselect($sql)))) {
+ $max_clock = $row['clock'];
+ }
+ if ($max_clock == 0) {
+ $sql = 'SELECT MAX(clock) AS clock'.
+ ' FROM '.$table.
+- ' WHERE itemid='.$db_item['itemid'].
+- ' AND clock<'.$clock;
++ ' WHERE itemid='.zbx_dbstr($db_item['itemid']).
++ ' AND clock<'.zbx_dbstr($clock);
+ if (null != ($row = DBfetch(DBselect($sql)))) {
+ $max_clock = $row['clock'];
+ }
+@@ -1022,15 +1022,15 @@
+ if ($clock == $max_clock) {
+ $sql = 'SELECT value'.
+ ' FROM '.$table.
+- ' WHERE itemid='.$db_item['itemid'].
+- ' AND clock='.$clock.
+- ' AND ns<'.$ns;
++ ' WHERE itemid='.zbx_dbstr($db_item['itemid']).
++ ' AND clock='.zbx_dbstr($clock).
++ ' AND ns<'.zbx_dbstr($ns);
+ }
+ else {
+ $sql = 'SELECT value'.
+ ' FROM '.$table.
+- ' WHERE itemid='.$db_item['itemid'].
+- ' AND clock='.$max_clock.
++ ' WHERE itemid='.zbx_dbstr($db_item['itemid']).
++ ' AND clock='.zbx_dbstr($max_clock).
+ ' ORDER BY itemid,clock desc,ns desc';
+ }
+
+@@ -1039,9 +1039,9 @@
+ }
+ }
+ else {
+- $row = DBfetch(DBselect('SELECT MAX(clock) AS clock FROM '.$table.' WHERE itemid='.$db_item['itemid']));
++ $row = DBfetch(DBselect('SELECT MAX(clock) AS clock FROM '.$table.' WHERE itemid='.zbx_dbstr($db_item['itemid'])));
+ if (!empty($row['clock'])) {
+- $row = DBfetch(DBselect('SELECT value FROM '.$table.' WHERE itemid='.$db_item['itemid'].' AND clock='.$row['clock'].' ORDER BY ns DESC', 1));
++ $row = DBfetch(DBselect('SELECT value FROM '.$table.' WHERE itemid='.zbx_dbstr($db_item['itemid']).' AND clock='.zbx_dbstr($row['clock']).' ORDER BY ns DESC', 1));
+ if (!empty($row['value'])) {
+ $value = $row['value'];
+ }
+Index: frontends/php/include/services.inc.php
+===================================================================
+--- ./frontends/php/include/services.inc.php (revision 38884)
++++ ./frontends/php/include/services.inc.php (working copy)
+@@ -42,7 +42,7 @@
+ $result = DBselect(
+ 'SELECT s.status'.
+ ' FROM services s,services_links l'.
+- ' WHERE l.serviceupid='.$serviceid.
++ ' WHERE l.serviceupid='.zbx_dbstr($serviceid).
+ ' AND s.serviceid=l.servicedownid'.
+ ' ORDER BY s.status'.$sort_order
+ );
+@@ -77,7 +77,7 @@
+ $result = DBselect(
+ 'SELECT sl.servicedownid'.
+ ' FROM services_links sl'.
+- ' WHERE sl.serviceupid='.$serviceid.
++ ' WHERE sl.serviceupid='.zbx_dbstr($serviceid).
+ ($soft ? '' : ' AND sl.soft=0')
+ );
+ while ($row = DBfetch($result)) {
+@@ -354,7 +354,7 @@
+ 'SELECT l.serviceupid,s.algorithm'.
+ ' FROM services_links l,services s'.
+ ' WHERE s.serviceid=l.serviceupid'.
+- ' AND l.servicedownid='.$serviceid
++ ' AND l.servicedownid='.zbx_dbstr($serviceid)
+ );
+ while ($row = DBfetch($result)) {
+ $serviceupid = $row['serviceupid'];
+@@ -363,7 +363,7 @@
+ if ($algorithm == SERVICE_ALGORITHM_MAX || $algorithm == SERVICE_ALGORITHM_MIN) {
+ $status = get_service_status($serviceupid, $algorithm);
+ add_service_alarm($serviceupid, $status, time());
+- DBexecute('UPDATE services SET status='.$status.' WHERE serviceid='.$serviceupid);
++ DBexecute('UPDATE services SET status='.zbx_dbstr($status).' WHERE serviceid='.zbx_dbstr($serviceupid));
+ }
+ elseif ($algorithm != SERVICE_ALGORITHM_NONE) {
+ error(_('Unknown calculation algorithm of service status').SPACE.'['.$algorithm.']');
+@@ -371,7 +371,7 @@
+ }
+ }
+
+- $result = DBselect('SELECT sl.serviceupid FROM services_links sl WHERE sl.servicedownid='.$serviceid);
++ $result = DBselect('SELECT sl.serviceupid FROM services_links sl WHERE sl.servicedownid='.zbx_dbstr($serviceid));
+ while ($row = DBfetch($result)) {
+ $serviceupid = $row['serviceupid'];
+ update_services_rec($serviceupid); // ATTENTION: recursion!!!
+@@ -386,9 +386,9 @@
+ * @param $status
+ */
+ function update_services($triggerid, $status) {
+- DBexecute('UPDATE services SET status='.$status.' WHERE triggerid='.$triggerid);
++ DBexecute('UPDATE services SET status='.zbx_dbstr($status).' WHERE triggerid='.zbx_dbstr($triggerid));
+
+- $result = DBselect('SELECT s.serviceid FROM services s WHERE s.triggerid='.$triggerid);
++ $result = DBselect('SELECT s.serviceid FROM services s WHERE s.triggerid='.zbx_dbstr($triggerid));
+ while ($row = DBfetch($result)) {
+ add_service_alarm($row['serviceid'], $status, time());
+ update_services_rec($row['serviceid']);
+@@ -415,7 +415,7 @@
+ );
+ while ($row = DBfetch($result)) {
+ $status = get_service_status($row['serviceid'], $row['algorithm'], $row['triggerid']);
+- DBexecute('UPDATE services SET status='.$status.' WHERE serviceid='.$row['serviceid']);
++ DBexecute('UPDATE services SET status='.zbx_dbstr($status).' WHERE serviceid='.$row['serviceid']);
+ add_service_alarm($row['serviceid'], $status, time());
+ }
+
+@@ -441,7 +441,7 @@
+ $result = DBselect(
+ 'SELECT sa.servicealarmid,sa.value'.
+ ' FROM service_alarms sa'.
+- ' WHERE sa.serviceid='.$serviceid.
++ ' WHERE sa.serviceid='.zbx_dbstr($serviceid).
+ ' ORDER BY sa.servicealarmid DESC', 1
+ );
+ $row = DBfetch($result);
+@@ -457,7 +457,7 @@
+ if (latest_service_alarm($serviceid, $status)) {
+ return true;
+ }
+- return DBexecute('INSERT INTO service_alarms (servicealarmid,serviceid,clock,value) VALUES ('.get_dbid('service_alarms', 'servicealarmid').','.$serviceid.','.$clock.','.$status.')');
++ return DBexecute('INSERT INTO service_alarms (servicealarmid,serviceid,clock,value) VALUES ('.get_dbid('service_alarms', 'servicealarmid').','.zbx_dbstr($serviceid).','.zbx_dbstr($clock).','.zbx_dbstr($status).')');
+ }
+
+ /**
+Index: frontends/php/include/profiles.inc.php
+===================================================================
+--- ./frontends/php/include/profiles.inc.php (revision 38884)
++++ ./frontends/php/include/profiles.inc.php (working copy)
+@@ -148,9 +148,9 @@
+ 'profileid' => get_dbid('profiles', 'profileid'),
+ 'userid' => self::$userDetails['userid'],
+ 'idx' => zbx_dbstr($idx),
+- $value_type => ($value_type == 'value_str') ? zbx_dbstr($value) : $value,
+- 'type' => $type,
+- 'idx2' => $idx2
++ $value_type => zbx_dbstr($value),
++ 'type' => zbx_dbstr($type),
++ 'idx2' => zbx_dbstr($idx2)
+ );
+ return DBexecute('INSERT INTO profiles ('.implode(', ', array_keys($values)).') VALUES ('.implode(', ', $values).')');
+ }
+@@ -163,16 +163,15 @@
+ }
+
+ if ($idx2 > 0) {
+- $sql_cond .= ' AND idx2='.$idx2.' AND '.DBin_node('idx2', false);
++ $sql_cond .= ' AND idx2='.zbx_dbstr($idx2).' AND '.DBin_node('idx2', false);
+ }
+
+ $value_type = self::getFieldByType($type);
+- $value = ($value_type == 'value_str') ? zbx_dbstr($value) : $value;
+
+ return DBexecute(
+ 'UPDATE profiles SET '.
+- $value_type.'='.$value.','.
+- ' type='.$type.
++ $value_type.'='.zbx_dbstr($value).','.
++ ' type='.zbx_dbstr($type).
+ ' WHERE userid='.self::$userDetails['userid'].
+ ' AND idx='.zbx_dbstr($idx).
+ $sql_cond
+@@ -242,7 +241,7 @@
+ }
+ }
+ if (isset($configs['alert_usrgrpid'])) {
+- if ($configs['alert_usrgrpid'] != 0 && !DBfetch(DBselect('SELECT u.usrgrpid FROM usrgrp u WHERE u.usrgrpid='.$configs['alert_usrgrpid']))) {
++ if ($configs['alert_usrgrpid'] != 0 && !DBfetch(DBselect('SELECT u.usrgrpid FROM usrgrp u WHERE u.usrgrpid='.zbx_dbstr($configs['alert_usrgrpid'])))) {
+ error(_('Incorrect user group.'));
+ return false;
+ }
+@@ -393,7 +392,7 @@
+ $history5 = DBfetch(DBSelect(
+ 'SELECT uh.title5,uh.url5'.
+ ' FROM user_history uh'.
+- ' WHERE uh.userid='.$userid
++ ' WHERE uh.userid='.zbx_dbstr($userid)
+ ));
+
+ if ($history5 && ($history5['title5'] == $title)) {
+@@ -401,7 +400,7 @@
+ // title same, url isnt, change only url
+ $sql = 'UPDATE user_history'.
+ ' SET url5='.zbx_dbstr($url).
+- ' WHERE userid='.$userid;
++ ' WHERE userid='.zbx_dbstr($userid);
+ }
+ else {
+ // no need to change anything;
+@@ -413,7 +412,7 @@
+ if ($history5 === false) {
+ $userhistoryid = get_dbid('user_history', 'userhistoryid');
+ $sql = 'INSERT INTO user_history (userhistoryid, userid, title5, url5)'.
+- ' VALUES('.$userhistoryid.', '.$userid.', '.zbx_dbstr($title).', '.zbx_dbstr($url).')';
++ ' VALUES('.$userhistoryid.', '.zbx_dbstr($userid).', '.zbx_dbstr($title).', '.zbx_dbstr($url).')';
+ }
+ else {
+ $sql = 'UPDATE user_history'.
+@@ -427,7 +426,7 @@
+ ' url4=url5,'.
+ ' title5='.zbx_dbstr($title).','.
+ ' url5='.zbx_dbstr($url).
+- ' WHERE userid='.$userid;
++ ' WHERE userid='.zbx_dbstr($userid);
+ }
+ }
+ return DBexecute($sql);
+@@ -464,7 +463,7 @@
+ 'profileid' => get_dbid('profiles', 'profileid'),
+ 'userid' => CWebUser::$data['userid'],
+ 'idx' => zbx_dbstr($favobj),
+- 'value_id' => $favid,
++ 'value_id' => zbx_dbstr($favid),
+ 'type' => PROFILE_TYPE_ID
+ );
+ if (!is_null($source)) {
+@@ -478,7 +477,7 @@
+ 'DELETE FROM profiles'.
+ ' WHERE userid='.CWebUser::$data['userid'].
+ ' AND idx='.zbx_dbstr($favobj).
+- ($favid > 0 ? ' AND value_id='.$favid : '').
++ ($favid > 0 ? ' AND value_id='.zbx_dbstr($favid) : '').
+ (is_null($source) ? '' : ' AND source='.zbx_dbstr($source))
+ );
+ }
+Index: frontends/php/include/graphs.inc.php
+===================================================================
+--- ./frontends/php/include/graphs.inc.php (revision 38884)
++++ ./frontends/php/include/graphs.inc.php (working copy)
+@@ -120,7 +120,7 @@
+ $dbGraphs = DBselect(
+ 'SELECT MAX(g.graphtype) AS graphtype,MIN(gi.yaxisside) AS yaxissidel,MAX(gi.yaxisside) AS yaxissider,MAX(g.height) AS height'.
+ ' FROM graphs g,graphs_items gi'.
+- ' WHERE g.graphid='.$graphid.
++ ' WHERE g.graphid='.zbx_dbstr($graphid).
+ ' AND gi.graphid=g.graphid'
+ );
+ if ($graph = DBfetch($dbGraphs)) {
+@@ -154,7 +154,7 @@
+ ' FROM graphs g,graphs_items gi,items i'.
+ ' WHERE g.graphid=gi.graphid'.
+ ' AND gi.itemid=i.itemid'.
+- ' AND i.hostid='.$hostid
++ ' AND i.hostid='.zbx_dbstr($hostid)
+ );
+ }
+
+@@ -172,7 +172,7 @@
+ ' FROM graphs_items gi,items i,hosts h'.
+ ' WHERE h.hostid=i.hostid'.
+ ' AND gi.itemid=i.itemid'.
+- ' AND gi.graphid='.$graphid
++ ' AND gi.graphid='.zbx_dbstr($graphid)
+ );
+ }
+
+@@ -187,7 +187,7 @@
+ $dbItems = DBselect(
+ 'SELECT DISTINCT gi.itemid'.
+ ' FROM graphs_items gi'.
+- ' WHERE gi.graphid='.$graphid
++ ' WHERE gi.graphid='.zbx_dbstr($graphid)
+ );
+ while ($item = DBfetch($dbItems)) {
+ $itemids[$item['itemid']] = $item['itemid'];
+@@ -280,7 +280,7 @@
+ }
+
+ function get_graph_by_graphid($graphid) {
+- $dbGraphs = DBselect('SELECT g.* FROM graphs g WHERE g.graphid='.$graphid);
++ $dbGraphs = DBselect('SELECT g.* FROM graphs g WHERE g.graphid='.zbx_dbstr($graphid));
+ $dbGraphs = DBfetch($dbGraphs);
+ if (!empty($dbGraphs)) {
+ return $dbGraphs;
+@@ -307,8 +307,8 @@
+ 'SELECT dest.itemid,src.key_'.
+ ' FROM items dest,items src'.
+ ' WHERE dest.key_=src.key_'.
+- ' AND dest.hostid='.$dest_hostid.
+- ' AND src.itemid='.$gitem['itemid']
++ ' AND dest.hostid='.zbx_dbstr($dest_hostid).
++ ' AND src.itemid='.zbx_dbstr($gitem['itemid'])
+ ));
+
+ if ($dbItem) {
+Index: frontends/php/include/db.inc.php
+===================================================================
+--- ./frontends/php/include/db.inc.php (revision 38884)
++++ ./frontends/php/include/db.inc.php (working copy)
+@@ -150,7 +150,7 @@
+ );
+ db2_set_option($DB['DB'], $options, 1);
+ if (isset($DB['SCHEMA']) && ($DB['SCHEMA'] != '')) {
+- DBexecute("SET CURRENT SCHEMA='".$DB['SCHEMA']."'");
++ DBexecute('SET CURRENT SCHEMA='.zbx_dbstr($DB['SCHEMA']));
+ }
+ }
+ break;
+@@ -563,7 +563,7 @@
+
+ $result = false;
+
+- if (!isset($DB['DB']) || empty($DB['DB'])) {
++ if (!isset($DB['DB']) || empty($DB['DB']) || is_bool($cursor)) {
+ return $result;
+ }
+
+Index: frontends/php/include/views/configuration.screen.constructor.edit.php
+===================================================================
+--- ./frontends/php/include/views/configuration.screen.constructor.edit.php (revision 38884)
++++ ./frontends/php/include/views/configuration.screen.constructor.edit.php (working copy)
+@@ -419,7 +419,7 @@
+ 'SELECT DISTINCT n.name AS node_name,s.screenid,s.name'.
+ ' FROM screens s'.
+ ' LEFT JOIN nodes n ON n.nodeid='.DBid2nodeid('s.screenid').
+- ' WHERE s.screenid='.$resourceid
++ ' WHERE s.screenid='.zbx_dbstr($resourceid)
+ );
+ while ($row = DBfetch($db_screens)) {
+ $screen = API::Screen()->get(array(
+Index: frontends/php/include/classes/class.chostsinfo.php
+===================================================================
+--- ./frontends/php/include/classes/class.chostsinfo.php (revision 38884)
++++ ./frontends/php/include/classes/class.chostsinfo.php (working copy)
+@@ -55,7 +55,7 @@
+ $cond_from = '';
+ if (remove_nodes_from_id($this->groupid) > 0) {
+ $cond_from = ', hosts_groups hg ';
+- $cond_where = 'AND hg.hostid=h.hostid AND hg.groupid='.$this->groupid;
++ $cond_where = 'AND hg.hostid=h.hostid AND hg.groupid='.zbx_dbstr($this->groupid);
+ }
+ else {
+ $cond_where = ' AND '.DBin_node('h.hostid', $this->nodeid);
+Index: frontends/php/include/classes/import/CImportReferencer.php
+===================================================================
+--- ./frontends/php/include/classes/import/CImportReferencer.php (revision 38884)
++++ ./frontends/php/include/classes/import/CImportReferencer.php (working copy)
+@@ -595,7 +595,7 @@
+ foreach ($this->applications as $host => $applications) {
+ $hostId = $this->resolveHostOrTemplate($host);
+ if ($hostId) {
+- $sqlWhere[] = '(hostid='.$hostId.' AND '.dbConditionString('name', $applications).')';
++ $sqlWhere[] = '(hostid='.zbx_dbstr($hostId).' AND '.dbConditionString('name', $applications).')';
+ }
+ }
+
+@@ -626,7 +626,7 @@
+ foreach ($this->items as $host => $keys) {
+ $hostId = $this->resolveHostOrTemplate($host);
+ if ($hostId) {
+- $sqlWhere[] = '(i.hostid='.$hostId.' AND '.dbConditionString('i.key_', $keys).')';
++ $sqlWhere[] = '(i.hostid='.zbx_dbstr($hostId).' AND '.dbConditionString('i.key_', $keys).')';
+ }
+ }
+
+@@ -778,7 +778,7 @@
+ foreach ($this->macros as $host => $macros) {
+ $hostId = $this->resolveHostOrTemplate($host);
+ if ($hostId) {
+- $sqlWhere[] = '(hm.hostid='.$hostId.' AND '.dbConditionString('hm.macro', $macros).')';
++ $sqlWhere[] = '(hm.hostid='.zbx_dbstr($hostId).' AND '.dbConditionString('hm.macro', $macros).')';
+ }
+ }
+
+Index: frontends/php/include/classes/class.cpie.php
+===================================================================
+--- ./frontends/php/include/classes/class.cpie.php (revision 38884)
++++ ./frontends/php/include/classes/class.cpie.php (working copy)
+@@ -170,9 +170,9 @@
+ 'MAX(i.lastvalue) AS lst'.
+ ' FROM history h'.
+ ' LEFT JOIN items i ON h.itemid=i.itemid'.
+- ' WHERE h.itemid='.$this->items[$i]['itemid'].
+- ' AND h.clock>='.$from_time.
+- ' AND h.clock<='.$to_time.
++ ' WHERE h.itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND h.clock>='.zbx_dbstr($from_time).
++ ' AND h.clock<='.zbx_dbstr($to_time).
+ ' GROUP BY h.itemid'
+ ,
+ 'SELECT hu.itemid,'.
+@@ -181,9 +181,9 @@
+ 'MAX(i.lastvalue) AS lst'.
+ ' FROM history_uint hu'.
+ ' LEFT JOIN items i ON hu.itemid=i.itemid'.
+- ' WHERE hu.itemid='.$this->items[$i]['itemid'].
+- ' AND hu.clock>='.$from_time.
+- ' AND hu.clock<='.$to_time.
++ ' WHERE hu.itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND hu.clock>='.zbx_dbstr($from_time).
++ ' AND hu.clock<='.zbx_dbstr($to_time).
+ ' GROUP BY hu.itemid'
+ );
+ }
+@@ -196,9 +196,9 @@
+ 'MAX(i.lastvalue) AS lst'.
+ ' FROM trends t'.
+ ' LEFT JOIN items i ON t.itemid=i.itemid'.
+- ' WHERE t.itemid='.$this->items[$i]['itemid'].
+- ' AND t.clock>='.$from_time.
+- ' AND t.clock<='.$to_time.
++ ' WHERE t.itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND t.clock>='.zbx_dbstr($from_time).
++ ' AND t.clock<='.zbx_dbstr($to_time).
+ ' GROUP BY t.itemid'
+ ,
+ 'SELECT t.itemid,'.
+@@ -207,9 +207,9 @@
+ 'MAX(i.lastvalue) AS lst'.
+ ' FROM trends_uint t'.
+ ' LEFT JOIN items i ON t.itemid=i.itemid'.
+- ' WHERE t.itemid='.$this->items[$i]['itemid'].
+- ' AND t.clock>='.$from_time.
+- ' AND t.clock<='.$to_time.
++ ' WHERE t.itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND t.clock>='.zbx_dbstr($from_time).
++ ' AND t.clock<='.zbx_dbstr($to_time).
+ ' GROUP BY t.itemid'
+ );
+ }
+Index: frontends/php/include/classes/screens/CScreenDataOverview.php
+===================================================================
+--- ./frontends/php/include/classes/screens/CScreenDataOverview.php (revision 38884)
++++ ./frontends/php/include/classes/screens/CScreenDataOverview.php (working copy)
+@@ -28,7 +28,7 @@
+ */
+ public function get() {
+ $hostids = array();
+- $dbHostGroups = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid='.$this->screenitem['resourceid']);
++ $dbHostGroups = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid='.zbx_dbstr($this->screenitem['resourceid']));
+ while ($dbHostGroup = DBfetch($dbHostGroups)) {
+ $hostids[$dbHostGroup['hostid']] = $dbHostGroup['hostid'];
+ }
+Index: frontends/php/include/classes/screens/CScreenTriggersOverview.php
+===================================================================
+--- ./frontends/php/include/classes/screens/CScreenTriggersOverview.php (revision 38884)
++++ ./frontends/php/include/classes/screens/CScreenTriggersOverview.php (working copy)
+@@ -28,7 +28,7 @@
+ */
+ public function get() {
+ $hostids = array();
+- $dbHostGroups = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid='.$this->screenitem['resourceid']);
++ $dbHostGroups = DBselect('SELECT DISTINCT hg.hostid FROM hosts_groups hg WHERE hg.groupid='.zbx_dbstr($this->screenitem['resourceid']));
+ while ($dbHostGroup = DBfetch($dbHostGroups)) {
+ $hostids[$dbHostGroup['hostid']] = $dbHostGroup['hostid'];
+ }
+Index: frontends/php/include/classes/class.cchart.php
+===================================================================
+--- ./frontends/php/include/classes/class.cchart.php (revision 38884)
++++ ./frontends/php/include/classes/class.cchart.php (working copy)
+@@ -225,18 +225,18 @@
+ 'COUNT(*) AS count,AVG(value) AS avg,MIN(value) as min,'.
+ 'MAX(value) AS max,MAX(clock) AS clock'.
+ ' FROM history '.
+- ' WHERE itemid='.$this->items[$i]['itemid'].
+- ' AND clock>='.$from_time.
+- ' AND clock<='.$to_time.
++ ' WHERE itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND clock>='.zbx_dbstr($from_time).
++ ' AND clock<='.zbx_dbstr($to_time).
+ ' GROUP BY itemid,'.$calc_field
+ ,
+ 'SELECT itemid,'.$calc_field.' AS i,'.
+ 'COUNT(*) AS count,AVG(value) AS avg,MIN(value) AS min,'.
+ 'MAX(value) AS max,MAX(clock) AS clock'.
+ ' FROM history_uint '.
+- ' WHERE itemid='.$this->items[$i]['itemid'].
+- ' AND clock>='.$from_time.
+- ' AND clock<='.$to_time.
++ ' WHERE itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND clock>='.zbx_dbstr($from_time).
++ ' AND clock<='.zbx_dbstr($to_time).
+ ' GROUP BY itemid,'.$calc_field
+ );
+ }
+@@ -248,17 +248,17 @@
+ 'MAX(value_max) AS max,MAX(clock) AS clock'.
+ ' FROM trends'.
+ ' WHERE itemid='.$this->items[$i]['itemid'].
+- ' AND clock>='.$from_time.
+- ' AND clock<='.$to_time.
++ ' AND clock>='.zbx_dbstr($from_time).
++ ' AND clock<='.zbx_dbstr($to_time).
+ ' GROUP BY itemid,'.$calc_field
+ ,
+ 'SELECT itemid,'.$calc_field.' AS i,'.
+ 'SUM(num) AS count,AVG(value_avg) AS avg,MIN(value_min) AS min,'.
+ 'MAX(value_max) AS max,MAX(clock) AS clock'.
+ ' FROM trends_uint '.
+- ' WHERE itemid='.$this->items[$i]['itemid'].
+- ' AND clock>='.$from_time.
+- ' AND clock<='.$to_time.
++ ' WHERE itemid='.zbx_dbstr($this->items[$i]['itemid']).
++ ' AND clock>='.zbx_dbstr($from_time).
++ ' AND clock<='.zbx_dbstr($to_time).
+ ' GROUP BY itemid,'.$calc_field
+ );
+
+@@ -438,7 +438,7 @@
+ ' AND tr.status='.TRIGGER_STATUS_ENABLED.
+ ' AND i.itemid=f.itemid'.
+ ' AND h.hostid=i.hostid'.
+- ' AND f.itemid='.$item['itemid'].
++ ' AND f.itemid='.zbx_dbstr($item['itemid']).
+ ' ORDER BY tr.priority'
+ );
+ while (($trigger = DBfetch($db_triggers)) && $cnt < $max) {
+Index: frontends/php/include/classes/helpers/trigger/CTriggerDescription.php
+===================================================================
+--- ./frontends/php/include/classes/helpers/trigger/CTriggerDescription.php (revision 38884)
++++ ./frontends/php/include/classes/helpers/trigger/CTriggerDescription.php (working copy)
+@@ -59,7 +59,7 @@
+ $trigger = DBfetch(DBselect(
+ 'SELECT DISTINCT t.description,t.expression,t.triggerid'.
+ ' FROM triggers t'.
+- ' WHERE t.triggerid='.$triggerId
++ ' WHERE t.triggerid='.zbx_dbstr($triggerId)
+ ));
+ $triggers = $this->expandDescriptions(array($trigger['triggerid'] => $trigger));
+ $trigger = reset($triggers);
+Index: frontends/php/include/maps.inc.php
+===================================================================
+--- ./frontends/php/include/maps.inc.php (revision 38884)
++++ ./frontends/php/include/maps.inc.php (working copy)
+@@ -252,7 +252,7 @@
+ $res = DBselect('SELECT hi.ip,hi.dns,hi.useip,h.host,h.name,hi.type AS interfacetype'.
+ ' FROM interface hi,hosts h'.
+ ' WHERE hi.hostid=h.hostid'.
+- ' AND hi.main=1 AND hi.hostid='.$selement['elementid']);
++ ' AND hi.main=1 AND hi.hostid='.zbx_dbstr($selement['elementid']));
+
+ // process interface priorities
+ $tmpPriority = 0;
+@@ -272,7 +272,7 @@
+ ' WHERE h.hostid=hi.hostid'.
+ ' AND hi.hostid=i.hostid'.
+ ' AND i.itemid=f.itemid'.
+- ' AND hi.main=1 AND f.triggerid='.$selement['elementid'].
++ ' AND hi.main=1 AND f.triggerid='.zbx_dbstr($selement['elementid']).
+ ' ORDER BY f.functionid');
+
+ // process interface priorities, build $hostsByFunctionId array
+@@ -473,7 +473,7 @@
+ 'SELECT '.$function.'(value) AS value'.
+ ' FROM '.$history_table[$item['value_type']].
+ ' WHERE clock>'.(time() - $parameter).
+- ' AND itemid='.$item['itemid']
++ ' AND itemid='.zbx_dbstr($item['itemid'])
+ );
+ if (null === ($row = DBfetch($result))) {
+ $label = str_replace($expr, '('._('no data').')', $label);
+@@ -502,7 +502,7 @@
+ $db_mapselements = DBselect(
+ 'SELECT DISTINCT se.elementtype,se.elementid'.
+ ' FROM sysmaps_elements se'.
+- ' WHERE se.sysmapid='.$db_element['elementid']
++ ' WHERE se.sysmapid='.zbx_dbstr($db_element['elementid'])
+ );
+ while ($db_mapelement = DBfetch($db_mapselements)) {
+ get_map_elements($db_mapelement, $elements);
+Index: frontends/php/include/hosts.inc.php
+===================================================================
+--- ./frontends/php/include/hosts.inc.php (revision 38884)
++++ ./frontends/php/include/hosts.inc.php (working copy)
+@@ -483,7 +483,7 @@
+ }
+
+ function get_hostgroup_by_groupid($groupid) {
+- $groups = DBfetch(DBselect('SELECT g.* FROM groups g WHERE g.groupid='.$groupid));
++ $groups = DBfetch(DBselect('SELECT g.* FROM groups g WHERE g.groupid='.zbx_dbstr($groupid)));
+ if (!empty($groups)) {
+ return $groups;
+ }
+@@ -522,7 +522,7 @@
+ }
+
+ function get_host_by_hostid($hostid, $no_error_message = 0) {
+- $row = DBfetch(DBselect('SELECT h.* FROM hosts h WHERE h.hostid='.$hostid));
++ $row = DBfetch(DBselect('SELECT h.* FROM hosts h WHERE h.hostid='.zbx_dbstr($hostid)));
+ if ($row) {
+ return $row;
+ }
+@@ -1109,7 +1109,7 @@
+
+ if ($_REQUEST['groupid'] > 0) {
+ if ($_REQUEST['hostid'] > 0) {
+- if (!DBfetch(DBselect('SELECT hg.groupid FROM hosts_groups hg WHERE hg.hostid='.$_REQUEST['hostid'].' AND hg.groupid='.$_REQUEST['groupid']))) {
++ if (!DBfetch(DBselect('SELECT hg.groupid FROM hosts_groups hg WHERE hg.hostid='.zbx_dbstr($_REQUEST['hostid']).' AND hg.groupid='.zbx_dbstr($_REQUEST['groupid'])))) {
+ $_REQUEST['hostid'] = 0;
+ }
+ }
+@@ -1145,7 +1145,7 @@
+ }
+
+ function get_application_by_applicationid($applicationid, $no_error_message = 0) {
+- $row = DBfetch(DBselect('SELECT a.* FROM applications a WHERE a.applicationid='.$applicationid));
++ $row = DBfetch(DBselect('SELECT a.* FROM applications a WHERE a.applicationid='.zbx_dbstr($applicationid)));
+ if ($row) {
+ return $row;
+ }
+@@ -1157,7 +1157,7 @@
+ }
+
+ function get_applications_by_templateid($applicationid) {
+- return DBselect('SELECT a.* FROM applications a WHERE a.templateid='.$applicationid);
++ return DBselect('SELECT a.* FROM applications a WHERE a.templateid='.zbx_dbstr($applicationid));
+ }
+
+ function get_realhost_by_applicationid($applicationid) {
+@@ -1169,7 +1169,7 @@
+ }
+
+ function get_host_by_applicationid($applicationid) {
+- $row = DBfetch(DBselect('SELECT h.* FROM hosts h,applications a WHERE a.hostid=h.hostid AND a.applicationid='.$applicationid));
++ $row = DBfetch(DBselect('SELECT h.* FROM hosts h,applications a WHERE a.hostid=h.hostid AND a.applicationid='.zbx_dbstr($applicationid)));
+ if ($row) {
+ return $row;
+ }
+@@ -1327,7 +1327,7 @@
+ }
+
+ function isTemplate($hostid) {
+- $dbHost = DBfetch(DBselect('SELECT h.status FROM hosts h WHERE h.hostid='.$hostid));
++ $dbHost = DBfetch(DBselect('SELECT h.status FROM hosts h WHERE h.hostid='.zbx_dbstr($hostid)));
+
+ return !empty($dbHost) && $dbHost['status'] == HOST_STATUS_TEMPLATE;
+ }
+Index: frontends/php/include/users.inc.php
+===================================================================
+--- ./frontends/php/include/users.inc.php (revision 38884)
++++ ./frontends/php/include/users.inc.php (working copy)
+@@ -90,9 +90,9 @@
+ function add_user_to_group($userid, $usrgrpid) {
+ $result = false;
+ if (granted2move_user($userid,$usrgrpid)) {
+- DBexecute('DELETE FROM users_groups WHERE userid='.$userid.' AND usrgrpid='.$usrgrpid);
++ DBexecute('DELETE FROM users_groups WHERE userid='.zbx_dbstr($userid).' AND usrgrpid='.zbx_dbstr($usrgrpid));
+ $users_groups_id = get_dbid('users_groups', 'id');
+- $result = DBexecute('INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.$users_groups_id.','.$usrgrpid.','.$userid.')');
++ $result = DBexecute('INSERT INTO users_groups (id,usrgrpid,userid) VALUES ('.$users_groups_id.','.zbx_dbstr($usrgrpid).','.zbx_dbstr($userid).')');
+ }
+ else{
+ error(_('User cannot change status of himself.'));
+@@ -103,7 +103,7 @@
+ function remove_user_from_group($userid, $usrgrpid) {
+ $result = false;
+ if (granted2move_user($userid,$usrgrpid)) {
+- $result = DBexecute('DELETE FROM users_groups WHERE userid='.$userid.' AND usrgrpid='.$usrgrpid);
++ $result = DBexecute('DELETE FROM users_groups WHERE userid='.zbx_dbstr($userid).' AND usrgrpid='.zbx_dbstr($usrgrpid));
+ }
+ else {
+ error(_('User cannot change status of himself.'));
+@@ -138,7 +138,7 @@
+ }
+
+ if ($grant) {
+- $result = DBexecute('UPDATE usrgrp SET users_status='.$users_status.' WHERE '.dbConditionInt('usrgrpid', $usrgrpids));
++ $result = DBexecute('UPDATE usrgrp SET users_status='.zbx_dbstr($users_status).' WHERE '.dbConditionInt('usrgrpid', $usrgrpids));
+ }
+ else {
+ error(_('User cannot change status of himself.'));
+@@ -154,7 +154,7 @@
+ $grant = granted2update_group($usrgrpids);
+ }
+ if ($grant) {
+- $result = DBexecute('UPDATE usrgrp SET gui_access='.$gui_access.' WHERE '.dbConditionInt('usrgrpid',$usrgrpids));
++ $result = DBexecute('UPDATE usrgrp SET gui_access='.zbx_dbstr($gui_access).' WHERE '.dbConditionInt('usrgrpid',$usrgrpids));
+ }
+ else {
+ error(_('User cannot change GUI access for himself.'));
+@@ -164,6 +164,6 @@
+
+ function change_group_debug_mode($usrgrpids, $debug_mode){
+ zbx_value2array($usrgrpids);
+- return DBexecute('UPDATE usrgrp SET debug_mode='.$debug_mode.' WHERE '.dbConditionInt('usrgrpid', $usrgrpids));
++ return DBexecute('UPDATE usrgrp SET debug_mode='.zbx_dbstr($debug_mode).' WHERE '.dbConditionInt('usrgrpid', $usrgrpids));
+ }
+ ?>
+Index: frontends/php/include/events.inc.php
+===================================================================
+--- ./frontends/php/include/events.inc.php (revision 38884)
++++ ./frontends/php/include/events.inc.php (working copy)
+@@ -33,7 +33,7 @@
+ function get_tr_event_by_eventid($eventid) {
+ $sql = 'SELECT e.*,t.triggerid,t.description,t.expression,t.priority,t.status,t.type'.
+ ' FROM events e,triggers t'.
+- ' WHERE e.eventid='.$eventid.
++ ' WHERE e.eventid='.zbx_dbstr($eventid).
+ ' AND e.object='.EVENT_OBJECT_TRIGGER.
+ ' AND t.triggerid=e.objectid';
+ return DBfetch(DBselect($sql));
+@@ -100,9 +100,9 @@
+
+ $sql = 'SELECT e.*'.
+ ' FROM events e'.
+- ' WHERE e.objectid='.$currentEvent['objectid'].
+- ' AND e.eventid>'.$currentEvent['eventid'].
+- ' AND e.object='.$currentEvent['object'].
++ ' WHERE e.objectid='.zbx_dbstr($currentEvent['objectid']).
++ ' AND e.eventid>'.zbx_dbstr($currentEvent['eventid']).
++ ' AND e.object='.zbx_dbstr($currentEvent['object']).
+ ($showUnknown ? '' : ' AND e.value_changed='.TRIGGER_VALUE_CHANGED_YES).
+ ' ORDER BY e.object,e.objectid,e.eventid';
+ return DBfetch(DBselect($sql, 1));
+Index: frontends/php/include/images.inc.php
+===================================================================
+--- ./frontends/php/include/images.inc.php (revision 38884)
++++ ./frontends/php/include/images.inc.php (working copy)
+@@ -36,7 +36,7 @@
+ static $images = array();
+
+ if (!isset($images[$imageid])) {
+- $row = DBfetch(DBselect('SELECT i.* FROM images i WHERE i.imageid='.$imageid));
++ $row = DBfetch(DBselect('SELECT i.* FROM images i WHERE i.imageid='.zbx_dbstr($imageid)));
+ $row['image'] = zbx_unescape_image($row['image']);
+ $images[$imageid] = $row;
+ }
+Index: frontends/php/include/maintenances.inc.php
+===================================================================
+--- ./frontends/php/include/maintenances.inc.php (revision 38884)
++++ ./frontends/php/include/maintenances.inc.php (working copy)
+@@ -23,7 +23,7 @@
+ $sql = 'SELECT m.*'.
+ ' FROM maintenances m'.
+ ' WHERE '.DBin_node('m.maintenanceid').
+- ' AND maintenanceid='.$maintenanceid;
++ ' AND maintenanceid='.zbx_dbstr($maintenanceid);
+ return DBfetch(DBselect($sql));
+ }
+
+Index: frontends/php/include/discovery.inc.php
+===================================================================
+--- ./frontends/php/include/discovery.inc.php (revision 38884)
++++ ./frontends/php/include/discovery.inc.php (working copy)
+@@ -164,7 +164,7 @@
+ }
+
+ function get_discovery_rule_by_druleid($druleid) {
+- return DBfetch(DBselect('SELECT d.* FROM drules d WHERE d.druleid='.$druleid));
++ return DBfetch(DBselect('SELECT d.* FROM drules d WHERE d.druleid='.zbx_dbstr($druleid)));
+ }
+
+ function delete_discovery_rule($druleid) {
+@@ -174,7 +174,7 @@
+ 'SELECT DISTINCT c.actionid'.
+ ' FROM conditions c'.
+ ' WHERE c.conditiontype='.CONDITION_TYPE_DRULE.
+- ' AND c.value=\''.$druleid.'\''
++ ' AND c.value='.zbx_dbstr($druleid)
+ );
+ while ($action = DBfetch($dbActions)) {
+ $actionids[] = $action['actionid'];
+@@ -183,8 +183,8 @@
+ // disabling actions with deleted conditions
+ if (!empty($actionids)) {
+ DBexecute('UPDATE actions SET status='.ACTION_STATUS_DISABLED.' WHERE '.dbConditionInt('actionid', $actionids));
+- DBexecute('DELETE FROM conditions WHERE conditiontype='.CONDITION_TYPE_DRULE.' AND value=\''.$druleid.'\'');
++ DBexecute('DELETE FROM conditions WHERE conditiontype='.CONDITION_TYPE_DRULE.' AND value='.zbx_dbstr($druleid));
+ }
+- return DBexecute('DELETE FROM drules WHERE druleid='.$druleid);
++ return DBexecute('DELETE FROM drules WHERE druleid='.zbx_dbstr($druleid));
+ }
+ ?>
+Index: frontends/php/include/nodes.inc.php
+===================================================================
+--- ./frontends/php/include/nodes.inc.php (revision 38884)
++++ ./frontends/php/include/nodes.inc.php (working copy)
+@@ -281,23 +281,22 @@
+ error(_('Master node already exists.'));
+ return false;
+ }
+- $masterid = 'NULL';
+ break;
+ default:
+ error(_('Incorrect node type.'));
+ return false;
+ }
+
+- if (DBfetch(DBselect('SELECT n.nodeid FROM nodes n WHERE n.nodeid='.$nodeid))) {
++ if (DBfetch(DBselect('SELECT n.nodeid FROM nodes n WHERE n.nodeid='.zbx_dbstr($nodeid)))) {
+ error(_('Node with same ID already exists.'));
+ return false;
+ }
+
+ $result = DBexecute('INSERT INTO nodes (nodeid,name,ip,port,nodetype,masterid)'.
+- ' VALUES ('.$nodeid.','.zbx_dbstr($name).','.zbx_dbstr($ip).','.$port.','.$nodetype.','.$masterid.')');
++ ' VALUES ('.$nodeid.','.zbx_dbstr($name).','.zbx_dbstr($ip).','.zbx_dbstr($port).','.zbx_dbstr($nodetype).','.($masterid ? zbx_dbstr($masterid) : 'NULL').')');
+
+ if ($result && $nodetype == ZBX_NODE_MASTER) {
+- DBexecute('UPDATE nodes SET masterid='.$nodeid.' WHERE nodeid='.$ZBX_LOCALNODEID);
++ DBexecute('UPDATE nodes SET masterid='.zbx_dbstr($nodeid).' WHERE nodeid='.$ZBX_LOCALNODEID);
+ $ZBX_CURMASTERID = $nodeid; // apply master node for this script
+ }
+
+@@ -309,12 +308,12 @@
+ error(_('Incorrect characters used for Node name.'));
+ return false;
+ }
+- return DBexecute('UPDATE nodes SET name='.zbx_dbstr($name).',ip='.zbx_dbstr($ip).',port='.$port.' WHERE nodeid='.$nodeid);
++ return DBexecute('UPDATE nodes SET name='.zbx_dbstr($name).',ip='.zbx_dbstr($ip).',port='.zbx_dbstr($port).' WHERE nodeid='.zbx_dbstr($nodeid));
+ }
+
+ function delete_node($nodeid) {
+ $result = false;
+- $node = DBfetch(DBselect('SELECT n.nodeid,n.masterid FROM nodes n WHERE n.nodeid='.$nodeid));
++ $node = DBfetch(DBselect('SELECT n.nodeid,n.masterid FROM nodes n WHERE n.nodeid='.zbx_dbstr($nodeid)));
+ $nodetype = detect_node_type($node['nodeid'], $node['masterid']);
+
+ if ($nodetype == ZBX_NODE_LOCAL) {
+@@ -322,8 +321,8 @@
+ }
+ else {
+ $result = (
+- DBexecute('UPDATE nodes SET masterid=NULL WHERE masterid='.$nodeid) &&
+- DBexecute('DELETE FROM nodes WHERE nodeid='.$nodeid)
++ DBexecute('UPDATE nodes SET masterid=NULL WHERE masterid='.zbx_dbstr($nodeid)) &&
++ DBexecute('DELETE FROM nodes WHERE nodeid='.zbx_dbstr($nodeid))
+ );
+ if ($nodetype != ZBX_NODE_MASTER) {
+ error(_('Please be aware that database still contains data related to the deleted node.'));
+@@ -333,7 +332,7 @@
+ }
+
+ function get_node_by_nodeid($nodeid) {
+- return DBfetch(DBselect('SELECT n.* FROM nodes n WHERE n.nodeid='.$nodeid));
++ return DBfetch(DBselect('SELECT n.* FROM nodes n WHERE n.nodeid='.zbx_dbstr($nodeid)));
+ }
+
+ function get_node_path($nodeid, $result = '') {
+Index: frontends/php/include/valuemap.inc.php
+===================================================================
+--- ./frontends/php/include/valuemap.inc.php (revision 38884)
++++ ./frontends/php/include/valuemap.inc.php (working copy)
+@@ -59,7 +59,7 @@
+ unset($valueMap['valuemapid']);
+
+ // check existence
+- if (!DBfetch(DBselect('SELECT v.valuemapid FROM valuemaps v WHERE v.valuemapid='.$valueMapId))) {
++ if (!DBfetch(DBselect('SELECT v.valuemapid FROM valuemaps v WHERE v.valuemapid='.zbx_dbstr($valueMapId)))) {
+ throw new Exception(_s('Value map with valuemapid "%1$s" does not exist.', $valueMapId));
+ }
+
+@@ -228,7 +228,7 @@
+ $dbMappings = DBselect(
+ 'SELECT m.mappingid,m.value,m.newvalue'.
+ ' FROM mappings m'.
+- ' WHERE m.valuemapid='.$valueMapId
++ ' WHERE m.valuemapid='.zbx_dbstr($valueMapId)
+ );
+ while ($mapping = DBfetch($dbMappings)) {
+ $mappings[$mapping['mappingid']] = $mapping;
+@@ -260,7 +260,7 @@
+ $dbMappings = DBselect(
+ 'SELECT m.newvalue'.
+ ' FROM mappings m'.
+- ' WHERE m.valuemapid='.$valueMapId.
++ ' WHERE m.valuemapid='.zbx_dbstr($valueMapId).
+ ' AND m.value='.zbx_dbstr($value)
+ );
+ if ($mapping = DBfetch($dbMappings)) {
+Index: frontends/php/include/httptest.inc.php
+===================================================================
+--- ./frontends/php/include/httptest.inc.php (revision 38884)
++++ ./frontends/php/include/httptest.inc.php (working copy)
+@@ -72,10 +72,10 @@
+ }
+
+ function activate_httptest($httptestid) {
+- $result = DBexecute('UPDATE httptest SET status='.HTTPTEST_STATUS_ACTIVE.' WHERE httptestid='.$httptestid);
++ $result = DBexecute('UPDATE httptest SET status='.HTTPTEST_STATUS_ACTIVE.' WHERE httptestid='.zbx_dbstr($httptestid));
+
+ $itemids = array();
+- $items_db = DBselect('SELECT hti.itemid FROM httptestitem hti WHERE hti.httptestid='.$httptestid);
++ $items_db = DBselect('SELECT hti.itemid FROM httptestitem hti WHERE hti.httptestid='.zbx_dbstr($httptestid));
+ while ($itemid = Dbfetch($items_db)) {
+ $itemids[] = $itemid['itemid'];
+ }
+@@ -84,7 +84,7 @@
+ 'SELECT hsi.itemid'.
+ ' FROM httpstep hs,httpstepitem hsi'.
+ ' WHERE hs.httpstepid=hsi.httpstepid'.
+- ' AND hs.httptestid='.$httptestid
++ ' AND hs.httptestid='.zbx_dbstr($httptestid)
+ );
+ while ($itemid = Dbfetch($items_db)) {
+ $itemids[] = $itemid['itemid'];
+@@ -96,10 +96,10 @@
+ }
+
+ function disable_httptest($httptestid) {
+- $result = DBexecute('UPDATE httptest SET status='.HTTPTEST_STATUS_DISABLED.' WHERE httptestid='.$httptestid);
++ $result = DBexecute('UPDATE httptest SET status='.HTTPTEST_STATUS_DISABLED.' WHERE httptestid='.zbx_dbstr($httptestid));
+
+ $itemids = array();
+- $items_db = DBselect('SELECT hti.itemid FROM httptestitem hti WHERE hti.httptestid='.$httptestid);
++ $items_db = DBselect('SELECT hti.itemid FROM httptestitem hti WHERE hti.httptestid='.zbx_dbstr($httptestid));
+ while ($itemid = Dbfetch($items_db)) {
+ $itemids[] = $itemid['itemid'];
+ }
+@@ -108,7 +108,7 @@
+ 'SELECT hsi.itemid'.
+ ' FROM httpstep hs,httpstepitem hsi'.
+ ' WHERE hs.httpstepid=hsi.httpstepid'.
+- ' AND hs.httptestid='.$httptestid
++ ' AND hs.httptestid='.zbx_dbstr($httptestid)
+ );
+ while ($itemid = Dbfetch($items_db)) {
+ $itemids[] = $itemid['itemid'];
+@@ -125,7 +125,7 @@
+ ' FROM items i,httpstepitem si,httpstep s'.
+ ' WHERE i.itemid=si.itemid'.
+ ' AND si.httpstepid=s.httpstepid'.
+- ' AND s.httptestid='.$httptestid
++ ' AND s.httptestid='.zbx_dbstr($httptestid)
+ );
+ while ($item_data = DBfetch($db_items)) {
+ if (!delete_history_by_itemid($item_data['itemid'])) {
+@@ -137,11 +137,11 @@
+ }
+
+ function get_httptest_by_httptestid($httptestid) {
+- return DBfetch(DBselect('SELECT ht.* FROM httptest ht WHERE ht.httptestid='.$httptestid));
++ return DBfetch(DBselect('SELECT ht.* FROM httptest ht WHERE ht.httptestid='.zbx_dbstr($httptestid)));
+ }
+
+ function get_httpstep_by_no($httptestid, $no) {
+- return DBfetch(DBselect('SELECT hs.* FROM httpstep hs WHERE hs.httptestid='.$httptestid.' AND hs.no='.$no));
++ return DBfetch(DBselect('SELECT hs.* FROM httpstep hs WHERE hs.httptestid='.zbx_dbstr($httptestid).' AND hs.no='.zbx_dbstr($no)));
+ }
+
+ function get_httptests_by_hostid($hostids) {
+Index: frontends/php/include/acknow.inc.php
+===================================================================
+--- ./frontends/php/include/acknow.inc.php (revision 38884)
++++ ./frontends/php/include/acknow.inc.php (working copy)
+@@ -23,7 +23,7 @@
+ $dbEvents = DBfetch(DBselect(
+ 'SELECT e.*'.
+ ' FROM events e'.
+- ' WHERE e.objectid='.$triggerid.
++ ' WHERE e.objectid='.zbx_dbstr($triggerid).
+ ' AND e.object='.EVENT_OBJECT_TRIGGER.
+ ' AND e.value<>'.TRIGGER_VALUE_UNKNOWN.
+ ' AND e.value_changed='.TRIGGER_VALUE_CHANGED_YES.
+@@ -35,7 +35,7 @@
+ }
+
+ function get_acknowledges_by_eventid($eventid) {
+- return DBselect('SELECT a.*,u.alias FROM acknowledges a LEFT JOIN users u ON u.userid=a.userid WHERE a.eventid='.$eventid);
++ return DBselect('SELECT a.*,u.alias FROM acknowledges a LEFT JOIN users u ON u.userid=a.userid WHERE a.eventid='.zbx_dbstr($eventid));
+ }
+
+ /**
+Index: frontends/php/include/triggers.inc.php
+===================================================================
+--- ./frontends/php/include/triggers.inc.php (revision 38884)
++++ ./frontends/php/include/triggers.inc.php (working copy)
+@@ -107,7 +107,7 @@
+ function get_service_status_of_trigger($triggerid) {
+ $sql = 'SELECT t.triggerid,t.priority'.
+ ' FROM triggers t'.
+- ' WHERE t.triggerid='.$triggerid.
++ ' WHERE t.triggerid='.zbx_dbstr($triggerid).
+ ' AND t.status='.TRIGGER_STATUS_ENABLED.
+ ' AND t.value='.TRIGGER_VALUE_TRUE;
+ $rows = DBfetch(DBselect($sql, 1));
+@@ -259,7 +259,7 @@
+ }
+
+ function get_trigger_by_triggerid($triggerid) {
+- $db_trigger = DBfetch(DBselect('SELECT t.* FROM triggers t WHERE t.triggerid='.$triggerid));
++ $db_trigger = DBfetch(DBselect('SELECT t.* FROM triggers t WHERE t.triggerid='.zbx_dbstr($triggerid)));
+ if (!empty($db_trigger)) {
+ return $db_trigger;
+ }
+@@ -284,7 +284,7 @@
+ return DBselect(
+ 'SELECT DISTINCT t.*'.
+ ' FROM triggers t,functions f,items i'.
+- ' WHERE i.hostid='.$hostid.
++ ' WHERE i.hostid='.zbx_dbstr($hostid).
+ ' AND f.itemid=i.itemid'.
+ ' AND f.triggerid=t.triggerid'
+ );
+@@ -679,7 +679,7 @@
+ $state = '';
+ $sql = 'SELECT h.host,i.itemid,i.key_,f.function,f.triggerid,f.parameter,i.itemid,i.status,i.type,i.flags'.
+ ' FROM items i,functions f,hosts h'.
+- ' WHERE f.functionid='.$functionid.
++ ' WHERE f.functionid='.zbx_dbstr($functionid).
+ ' AND i.itemid=f.itemid'.
+ ' AND h.hostid=i.hostid';
+
+@@ -1068,8 +1068,8 @@
+ ' FROM triggers t,functions f,items i'.
+ ' WHERE t.triggerid=f.triggerid'.
+ ' AND f.itemid=i.itemid'.
+- ' AND t.templateid='.$val.
+- ' AND i.hostid='.$hostid;
++ ' AND t.templateid='.zbx_dbstr($val).
++ ' AND i.hostid='.zbx_dbstr($hostid);
+ if ($db_new_dep = DBfetch(DBselect($sql))) {
+ $deps[$id] = $db_new_dep['triggerid'];
+ }
+@@ -1395,9 +1395,9 @@
+ if ($period_start > 0 && $period_start <= time()) {
+ $sql = 'SELECT e.eventid,e.value'.
+ ' FROM events e'.
+- ' WHERE e.objectid='.$triggerid.
++ ' WHERE e.objectid='.zbx_dbstr($triggerid).
+ ' AND e.object='.EVENT_OBJECT_TRIGGER.
+- ' AND e.clock<'.$period_start.
++ ' AND e.clock<'.zbx_dbstr($period_start).
+ ' ORDER BY e.eventid DESC';
+ if ($row = DBfetch(DBselect($sql, 1))) {
+ $start_value = $row['value'];
+@@ -1407,13 +1407,13 @@
+
+ $sql = 'SELECT COUNT(e.eventid) AS cnt,MIN(e.clock) AS min_clock,MAX(e.clock) AS max_clock'.
+ ' FROM events e'.
+- ' WHERE e.objectid='.$triggerid.
++ ' WHERE e.objectid='.zbx_dbstr($triggerid).
+ ' AND e.object='.EVENT_OBJECT_TRIGGER;
+ if ($period_start != 0) {
+- $sql .= ' AND clock>='.$period_start;
++ $sql .= ' AND clock>='.zbx_dbstr($period_start);
+ }
+ if ($period_end != 0) {
+- $sql .= ' AND clock<='.$period_end;
++ $sql .= ' AND clock<='.zbx_dbstr($period_end);
+ }
+
+ $db_events = DBfetch(DBselect($sql));
+@@ -1455,7 +1455,7 @@
+ $db_events = DBselect(
+ 'SELECT e.eventid,e.clock,e.value'.
+ ' FROM events e'.
+- ' WHERE e.objectid='.$triggerid.
++ ' WHERE e.objectid='.zbx_dbstr($triggerid).
+ ' AND e.object='.EVENT_OBJECT_TRIGGER.
+ ' AND e.clock BETWEEN '.$min.' AND '.$max.
+ ' ORDER BY e.eventid'
+Index: frontends/php/include/forms.inc.php
+===================================================================
+--- ./frontends/php/include/forms.inc.php (revision 38884)
++++ ./frontends/php/include/forms.inc.php (working copy)
+@@ -66,7 +66,7 @@
+ $data['user_medias'] = array();
+ $dbMedia = DBselect('SELECT m.mediaid,m.mediatypeid,m.period,m.sendto,m.severity,m.active'.
+ ' FROM media m'.
+- ' WHERE m.userid='.$userid
++ ' WHERE m.userid='.zbx_dbstr($userid)
+ );
+ while ($dbMedium = DBfetch($dbMedia)) {
+ $data['user_medias'][] = $dbMedium;
+@@ -1104,7 +1104,7 @@
+ $data['db_applications'] = DBfetchArray(DBselect(
+ 'SELECT DISTINCT a.applicationid,a.name'.
+ ' FROM applications a'.
+- ' WHERE a.hostid='.$data['hostid']
++ ' WHERE a.hostid='.zbx_dbstr($data['hostid'])
+ ));
+ order_result($data['db_applications'], 'name');
+
+@@ -1117,7 +1117,7 @@
+ // valuemapid
+ if ($data['limited']) {
+ if (!empty($data['valuemapid'])) {
+- if ($map_data = DBfetch(DBselect('SELECT v.name FROM valuemaps v WHERE v.valuemapid='.$data['valuemapid']))) {
++ if ($map_data = DBfetch(DBselect('SELECT v.name FROM valuemaps v WHERE v.valuemapid='.zbx_dbstr($data['valuemapid'])))) {
+ $data['valuemaps'] = $map_data['name'];
+ }
+ }
+@@ -1270,7 +1270,7 @@
+ ' LEFT JOIN items i ON f.itemid=i.itemid'.
+ ' LEFT JOIN hosts h ON i.hostid=h.hostid'.
+ ' LEFT JOIN item_discovery id ON i.itemid=id.itemid'.
+- ' WHERE t.triggerid='.$tmp_triggerid
++ ' WHERE t.triggerid='.zbx_dbstr($tmp_triggerid)
+ ));
+ if (bccomp($data['triggerid'], $tmp_triggerid) != 0) {
+ // parent trigger prototype link
+@@ -1313,7 +1313,7 @@
+ 'SELECT t.triggerid,t.description'.
+ ' FROM triggers t,trigger_depends d'.
+ ' WHERE t.triggerid=d.triggerid_up'.
+- ' AND d.triggerid_down='.$data['triggerid']
++ ' AND d.triggerid_down='.zbx_dbstr($data['triggerid'])
+ );
+ while ($trigger = DBfetch($db_triggers)) {
+ if (uint_in_array($trigger['triggerid'], $data['dependencies'])) {
+@@ -1720,7 +1720,7 @@
+ $table_titles = zbx_toHash($table_titles, 'db_field');
+ $sql_fields = implode(', ', array_keys($table_titles));
+
+- $sql = 'SELECT '.$sql_fields.' FROM host_inventory WHERE hostid='.$_REQUEST['hostid'];
++ $sql = 'SELECT '.$sql_fields.' FROM host_inventory WHERE hostid='.zbx_dbstr($_REQUEST['hostid']);
+ $result = DBselect($sql);
+
+ $row = DBfetch($result);
+@@ -1740,7 +1740,7 @@
+ $sql = 'SELECT re.* '.
+ ' FROM regexps re '.
+ ' WHERE '.DBin_node('re.regexpid').
+- ' AND re.regexpid='.$_REQUEST['regexpid'];
++ ' AND re.regexpid='.zbx_dbstr($_REQUEST['regexpid']);
+ $regexp = DBfetch(DBSelect($sql));
+
+ $rename = $regexp['name'];
+@@ -1750,7 +1750,7 @@
+ $sql = 'SELECT e.* '.
+ ' FROM expressions e '.
+ ' WHERE '.DBin_node('e.expressionid').
+- ' AND e.regexpid='.$regexp['regexpid'].
++ ' AND e.regexpid='.zbx_dbstr($regexp['regexpid']).
+ ' ORDER BY e.expression_type';
+
+ $db_exps = DBselect($sql);
+@@ -1888,7 +1888,7 @@
+ $sql = 'SELECT e.* '.
+ ' FROM expressions e '.
+ ' WHERE '.DBin_node('e.expressionid').
+- ' AND e.regexpid='.$_REQUEST['regexpid'].
++ ' AND e.regexpid='.zbx_dbstr($_REQUEST['regexpid']).
+ ' ORDER BY e.expression_type';
+
+ $db_exps = DBselect($sql);
+Index: frontends/php/include/regexp.inc.php
+===================================================================
+--- ./frontends/php/include/regexp.inc.php (revision 38884)
++++ ./frontends/php/include/regexp.inc.php (working copy)
+@@ -24,7 +24,7 @@
+ 'SELECT re.*'.
+ ' FROM regexps re'.
+ ' WHERE '.DBin_node('re.regexpid').
+- ' AND regexpid='.$regexpId
++ ' AND regexpid='.zbx_dbstr($regexpId)
+ ));
+ }
+
+@@ -35,7 +35,7 @@
+ 'SELECT e.expressionid,e.expression,e.expression_type,e.exp_delimiter,e.case_sensitive'.
+ ' FROM expressions e'.
+ ' WHERE '.DBin_node('e.expressionid').
+- ' AND regexpid='.$regexpId
++ ' AND regexpid='.zbx_dbstr($regexpId)
+ );
+ while ($expression = DBfetch($dbExpressions)) {
+ $expressions[$expression['expressionid']] = $expression;
+Index: frontends/php/include/actions.inc.php
+===================================================================
+--- ./frontends/php/include/actions.inc.php (revision 38884)
++++ ./frontends/php/include/actions.inc.php (working copy)
+@@ -203,7 +203,7 @@
+ 'SELECT dr.name,c.dcheckid,c.type,c.key_,c.ports'.
+ ' FROM drules dr,dchecks c'.
+ ' WHERE dr.druleid=c.druleid'.
+- ' AND c.dcheckid='.$value
++ ' AND c.dcheckid='.zbx_dbstr($value)
+ ));
+ if ($row) {
+ $str_val = $row['name'].': '.discovery_check2str($row['type'], $row['key_'], $row['ports']);
+@@ -409,7 +409,7 @@
+ $sql = 'SELECT a.def_shortdata,a.def_longdata '.
+ ' FROM actions a,operations o '.
+ ' WHERE a.actionid=o.actionid '.
+- ' AND o.operationid='.$data['operationid'];
++ ' AND o.operationid='.zbx_dbstr($data['operationid']);
+ if ($rows = DBfetch(DBselect($sql, 1))) {
+ $result[] = array(bold(_('Subject').': '), BR(), zbx_nl2br($rows['def_shortdata']));
+ $result[] = array(bold(_('Message').': '), BR(), zbx_nl2br($rows['def_longdata']));
+@@ -873,8 +873,8 @@
+ ' FROM events e,alerts a'.
+ ' LEFT JOIN users u ON u.userid=a.userid'.
+ ' LEFT JOIN media_type mt ON mt.mediatypeid=a.mediatypeid'.
+- ' WHERE a.eventid='.$eventid.
+- (is_null($status)?'':' AND a.status='.$status).
++ ' WHERE a.eventid='.zbx_dbstr($eventid).
++ (is_null($status)?'':' AND a.status='.zbx_dbstr($status)).
+ ' AND e.eventid=a.eventid'.
+ ' AND a.alerttype IN ('.ALERT_TYPE_MESSAGE.','.ALERT_TYPE_COMMAND.')'.
+ ' AND '.DBin_node('a.alertid').
+Index: frontends/php/include/screens.inc.php
+===================================================================
+--- ./frontends/php/include/screens.inc.php (revision 38884)
++++ ./frontends/php/include/screens.inc.php (working copy)
+@@ -57,7 +57,7 @@
+ }
+
+ function get_screen_by_screenid($screenid) {
+- $dbScreen = DBfetch(DBselect('SELECT s.* FROM screens s WHERE s.screenid='.$screenid));
++ $dbScreen = DBfetch(DBselect('SELECT s.* FROM screens s WHERE s.screenid='.zbx_dbstr($screenid)));
+ return !empty($dbScreen) ? $dbScreen : false;
+ }
+
+@@ -69,7 +69,7 @@
+ $db_scr_items = DBselect(
+ 'SELECT si.resourceid'.
+ ' FROM screens_items si'.
+- ' WHERE si.screenid='.$child_screenid.
++ ' WHERE si.screenid='.zbx_dbstr($child_screenid).
+ ' AND si.resourcetype='.SCREEN_RESOURCE_SCREEN
+ );
+ while ($scr_item = DBfetch($db_scr_items)) {
+@@ -84,7 +84,7 @@
+ $db_slides = DBfetch(DBselect(
+ 'SELECT MIN(s.step) AS min_step,MAX(s.step) AS max_step'.
+ ' FROM slides s'.
+- ' WHERE s.slideshowid='.$slideshowid
++ ' WHERE s.slideshowid='.zbx_dbstr($slideshowid)
+ ));
+ if (!$db_slides || is_null($db_slides['min_step'])) {
+ return false;
+@@ -101,9 +101,9 @@
+ return DBfetch(DBselect(
+ 'SELECT sl.*'.
+ ' FROM slides sl,slideshows ss'.
+- ' WHERE ss.slideshowid='.$slideshowid.
++ ' WHERE ss.slideshowid='.zbx_dbstr($slideshowid).
+ ' AND sl.slideshowid=ss.slideshowid'.
+- ' AND sl.step='.$curr_step
++ ' AND sl.step='.zbx_dbstr($curr_step)
+ ));
+ }
+
+@@ -112,7 +112,7 @@
+
+ $sql = 'SELECT s.slideshowid'.
+ ' FROM slideshows s'.
+- ' WHERE s.slideshowid='.$slideshowid.
++ ' WHERE s.slideshowid='.zbx_dbstr($slideshowid).
+ ' AND '.DBin_node('s.slideshowid', get_current_nodeid(null, $perm)
+ );
+ if (DBselect($sql)) {
+@@ -122,7 +122,7 @@
+ $db_screens = DBselect(
+ 'SELECT DISTINCT s.screenid'.
+ ' FROM slides s'.
+- ' WHERE s.slideshowid='.$slideshowid
++ ' WHERE s.slideshowid='.zbx_dbstr($slideshowid)
+ );
+ while ($slide_data = DBfetch($db_screens)) {
+ $screenids[$slide_data['screenid']] = $slide_data['screenid'];
+@@ -147,7 +147,7 @@
+ }
+
+ function get_slideshow_by_slideshowid($slideshowid) {
+- return DBfetch(DBselect('SELECT s.* FROM slideshows s WHERE s.slideshowid='.$slideshowid));
++ return DBfetch(DBselect('SELECT s.* FROM slideshows s WHERE s.slideshowid='.zbx_dbstr($slideshowid)));
+ }
+
+ function add_slideshow($name, $delay, $slides) {
+@@ -182,7 +182,7 @@
+ $slideshowid = get_dbid('slideshows', 'slideshowid');
+ $result = DBexecute(
+ 'INSERT INTO slideshows (slideshowid,name,delay)'.
+- ' VALUES ('.$slideshowid.','.zbx_dbstr($name).','.$delay.')'
++ ' VALUES ('.zbx_dbstr($slideshowid).','.zbx_dbstr($name).','.zbx_dbstr($delay).')'
+ );
+
+ // create slides
+@@ -197,7 +197,7 @@
+
+ $result = DBexecute(
+ 'INSERT INTO slides (slideid,slideshowid,screenid,step,delay)'.
+- ' VALUES ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.($i++).','.$slide['delay'].')'
++ ' VALUES ('.zbx_dbstr($slideid).','.zbx_dbstr($slideshowid).','.zbx_dbstr($slide['screenid']).','.($i++).','.zbx_dbstr($slide['delay']).')'
+ );
+ if (!$result) {
+ return false;
+@@ -228,14 +228,14 @@
+ }
+
+ // validate slide name
+- $sql = 'SELECT s.slideshowid FROM slideshows s WHERE s.name='.zbx_dbstr($name).' AND s.slideshowid<>'.$slideshowid;
++ $sql = 'SELECT s.slideshowid FROM slideshows s WHERE s.name='.zbx_dbstr($name).' AND s.slideshowid<>'.zbx_dbstr($slideshowid);
+ $db_slideshow = DBfetch(DBselect($sql, 1));
+ if (!empty($db_slideshow)) {
+ error(_s('Slide show "%s" already exists.', $name));
+ return false;
+ }
+
+- $db_slideshow = DBfetchArray(DBselect('SELECT * FROM slideshows WHERE slideshowid='.$slideshowid));
++ $db_slideshow = DBfetchArray(DBselect('SELECT * FROM slideshows WHERE slideshowid='.zbx_dbstr($slideshowid)));
+ $db_slideshow = $db_slideshow[0];
+ $changed = false;
+ $slideshow = array('name' => $name, 'delay' => $delay);
+@@ -246,13 +246,13 @@
+ }
+ }
+ if ($changed) {
+- if (!$result = DBexecute('UPDATE slideshows SET name='.zbx_dbstr($name).',delay='.$delay.' WHERE slideshowid='.$slideshowid)) {
++ if (!$result = DBexecute('UPDATE slideshows SET name='.zbx_dbstr($name).',delay='.zbx_dbstr($delay).' WHERE slideshowid='.zbx_dbstr($slideshowid))) {
+ return false;
+ }
+ }
+
+ // get slides
+- $db_slides = DBfetchArrayAssoc(DBselect('SELECT s.* FROM slides s WHERE s.slideshowid='.$slideshowid), 'slideid');
++ $db_slides = DBfetchArrayAssoc(DBselect('SELECT s.* FROM slides s WHERE s.slideshowid='.zbx_dbstr($slideshowid)), 'slideid');
+
+ $slidesToDel = zbx_objectValues($db_slides, 'slideid');
+ $slidesToDel = zbx_toHash($slidesToDel);
+@@ -262,7 +262,7 @@
+ if (isset($db_slides[$slide['slideid']])) {
+ // update slide
+ if ($db_slides[$slide['slideid']]['delay'] != $slide['delay'] || $db_slides[$slide['slideid']]['step'] != $step) {
+- $result = DBexecute('UPDATE slides SET step='.$step.', delay='.$slide['delay'].' WHERE slideid='.$slide['slideid']);
++ $result = DBexecute('UPDATE slides SET step='.zbx_dbstr($step).', delay='.zbx_dbstr($slide['delay']).' WHERE slideid='.zbx_dbstr($slide['slideid']));
+ }
+ // do nothing with slide
+ else {
+@@ -275,7 +275,7 @@
+ $slideid = get_dbid('slides', 'slideid');
+ $result = DBexecute(
+ 'INSERT INTO slides (slideid,slideshowid,screenid,step,delay)'.
+- ' VALUES ('.$slideid.','.$slideshowid.','.$slide['screenid'].','.$step.','.$slide['delay'].')'
++ ' VALUES ('.zbx_dbstr($slideid).','.zbx_dbstr($slideshowid).','.zbx_dbstr($slide['screenid']).','.zbx_dbstr($step).','.zbx_dbstr($slide['delay']).')'
+ );
+ }
+ $step ++;
+@@ -293,9 +293,9 @@
+ }
+
+ function delete_slideshow($slideshowid) {
+- $result = DBexecute('DELETE FROM slideshows where slideshowid='.$slideshowid);
+- $result &= DBexecute('DELETE FROM slides where slideshowid='.$slideshowid);
+- $result &= DBexecute('DELETE FROM profiles WHERE idx=\'web.favorite.screenids\' AND source=\'slideshowid\' AND value_id='.$slideshowid);
++ $result = DBexecute('DELETE FROM slideshows where slideshowid='.zbx_dbstr($slideshowid));
++ $result &= DBexecute('DELETE FROM slides where slideshowid='.zbx_dbstr($slideshowid));
++ $result &= DBexecute('DELETE FROM profiles WHERE idx=\'web.favorite.screenids\' AND source=\'slideshowid\' AND value_id='.zbx_dbstr($slideshowid));
+ return $result;
+ }
+
+@@ -304,13 +304,13 @@
+ if ($config == 0) {
+ $sql = 'SELECT si.screenitemid'.
+ ' FROM screens_items si'.
+- ' WHERE si.screenid='.$elid.
++ ' WHERE si.screenid='.zbx_dbstr($elid).
+ ' AND si.dynamic='.SCREEN_DYNAMIC_ITEM;
+ }
+ else {
+ $sql = 'SELECT si.screenitemid'.
+ ' FROM slides s,screens_items si'.
+- ' WHERE s.slideshowid='.$elid.
++ ' WHERE s.slideshowid='.zbx_dbstr($elid).
+ ' AND si.screenid=s.screenid'.
+ ' AND si.dynamic='.SCREEN_DYNAMIC_ITEM;
+ }
+Index: frontends/php/include/perm.inc.php
+===================================================================
+--- ./frontends/php/include/perm.inc.php (revision 38884)
++++ ./frontends/php/include/perm.inc.php (working copy)
+@@ -46,7 +46,7 @@
+ function check_perm2system($userid) {
+ $sql = 'SELECT g.usrgrpid'.
+ ' FROM usrgrp g,users_groups ug'.
+- ' WHERE ug.userid='.$userid.
++ ' WHERE ug.userid='.zbx_dbstr($userid).
+ ' AND g.usrgrpid=ug.usrgrpid'.
+ ' AND g.users_status='.GROUP_STATUS_DISABLED;
+ if ($res = DBfetch(DBselect($sql, 1))) {
+@@ -91,7 +91,7 @@
+
+ $sql = 'SELECT MAX(g.gui_access) AS gui_access'.
+ ' FROM usrgrp g,users_groups ug'.
+- ' WHERE ug.userid='.$userid.
++ ' WHERE ug.userid='.zbx_dbstr($userid).
+ ' AND g.usrgrpid=ug.usrgrpid';
+ $db_access = DBfetch(DBselect($sql));
+ if (!zbx_empty($db_access['gui_access'])) {
+@@ -206,7 +206,7 @@
+ ' LEFT JOIN rights r ON r.id=hg.groupid'.
+ ' LEFT JOIN users_groups g ON r.groupid=g.usrgrpid'.
+ ' LEFT JOIN nodes n ON '.DBid2nodeid('hg.groupid').'=n.nodeid'.
+- ' WHERE g.userid='.$userid.
++ ' WHERE g.userid='.zbx_dbstr($userid).
+ ' AND '.DBin_node('hg.groupid', $nodeid).
+ ' GROUP BY n.nodeid,n.name,hg.groupid,hg.name,g.userid'.
+ ' ORDER BY node_name,hg.name,permission';
+@@ -306,7 +306,7 @@
+ foreach ($node_data as $nodeid => $node) {
+ switch ($perm_res) {
+ case PERM_RES_DATA_ARRAY:
+- $db_node = DBfetch(DBselect('SELECT n.* FROM nodes n WHERE n.nodeid='.$nodeid.' ORDER BY n.name'));
++ $db_node = DBfetch(DBselect('SELECT n.* FROM nodes n WHERE n.nodeid='.zbx_dbstr($nodeid).' ORDER BY n.name'));
+
+ if (!ZBX_DISTRIBUTED) {
+ if (!$node) {
+@@ -552,7 +552,7 @@
+ if (!isset($userGroups[$userId])) {
+ $userGroups[$userId] = array();
+
+- $result = DBselect('SELECT usrgrpid FROM users_groups WHERE userid='.$userId);
++ $result = DBselect('SELECT usrgrpid FROM users_groups WHERE userid='.zbx_dbstr($userId));
+ while ($row = DBfetch($result)) {
+ $userGroups[$userId][] = $row['usrgrpid'];
+ }
+Index: frontends/php/include/blocks.inc.php
+===================================================================
+--- ./frontends/php/include/blocks.inc.php (revision 38884)
++++ ./frontends/php/include/blocks.inc.php (working copy)
+@@ -1043,7 +1043,7 @@
+ ' AND hti.type='.HTTPSTEP_ITEM_TYPE_LASTSTEP.
+ ' AND ht.status='.HTTPTEST_STATUS_ACTIVE.
+ ' AND '.dbConditionInt('hg.hostid', $availableHostIds).
+- ' AND hg.groupid='.$group['groupid']
++ ' AND hg.groupid='.zbx_dbstr($group['groupid'])
+ );
+ while ($row = DBfetch($result)) {
+ $showGroup = true;