summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-23 16:58:07 +0400
committerAndrew Dolgov <[email protected]>2012-10-23 16:58:07 +0400
commitdd8c36af4be29c311cd3d6094b083371a4794368 (patch)
tree380c8bb79a6751bad294e626d6b1d2a20ee01969 /include
parent6e577ba15715cb3ccb9c54bd4e13f3f9ff2c3563 (diff)
prevent crashes on filter regexp being too advanced for our database when testing filters (refs #508)
Diffstat (limited to 'include')
-rw-r--r--include/functions.php15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/functions.php b/include/functions.php
index 2fb14097f..5588cea8d 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -2321,7 +2321,20 @@
$override_order = "updated DESC";
- $filter_query_part = filter_to_sql($filter) . " AND";
+ $filter_query_part = filter_to_sql($filter);
+
+ // Try to check if SQL regexp implementation chokes on a valid regexp
+ $result = db_query($link, "SELECT true FROM ttrss_entries
+ WHERE $filter_query_part LIMIT 1", false);
+
+ $test = db_fetch_result($result, 0, "true");
+
+ if (!$test) {
+ $filter_query_part = "false AND";
+ } else {
+ $filter_query_part .= " AND";
+ }
+
} else {
$filter_query_part = "";
}