Skip to content
Snippets Groups Projects
Commit 5cb6ef8e authored by Jakub Maloštík's avatar Jakub Maloštík
Browse files

Fix: escaped group parameter in getEvents for use with LIKE

to prevent clashing of underscores in client names and underscores used by LIKE.
parent c7eb4ccd
Branches
No related tags found
No related merge requests found
...@@ -714,10 +714,11 @@ class MySQL(ObjectBase): ...@@ -714,10 +714,11 @@ class MySQL(ObjectBase):
if group or nogroup: if group or nogroup:
subquery = [] subquery = []
for name in (group or nogroup): for name in (group or nogroup):
subquery.append("c.name = %s") # exact client escaped_name = name.replace('&', '&&').replace("_", "&_").replace("%", "&%") # escape for LIKE
subquery.append("c.name = %s") # exact client
params.append(name) params.append(name)
subquery.append("c.name LIKE %s") # whole subtree subquery.append("c.name LIKE CONCAT(%s, '.%%') ESCAPE '&'") # whole subtree
params.append(name + ".%") params.append(escaped_name)
query.append(" AND %s (%s)" % (self._get_not(group), " OR ".join(subquery))) query.append(" AND %s (%s)" % (self._get_not(group), " OR ".join(subquery)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment