diff --git a/ChangeLog b/ChangeLog index 9419c1f3eb..a827292689 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,7 @@ phpMyAdmin - ChangeLog - issue #11752 Improve detection of privileges for privilege adjusting - issue #11854 Undefined property: stdClass::$releases at version check when disabled in config - issue #11814 SQL comment and variable stripped from bookmark on save +- issue Gracefully handle errors in regex based javascript search 4.5.3.1 (2015-12-25) - issue #11774 Undefined offset 2 diff --git a/js/server_status_monitor.js b/js/server_status_monitor.js index 14328a5975..55bc3b90ec 100644 --- a/js/server_status_monitor.js +++ b/js/server_status_monitor.js @@ -1695,7 +1695,15 @@ AJAX.registerOnload('server_status_monitor.js', function () { if (val.length === 0) { textFilter = null; } else { - textFilter = new RegExp(val, 'i'); + try { + textFilter = new RegExp(val, 'i'); + $('#filterQueryText').removeClass('error'); + } catch(e) { + if (e instanceof SyntaxError) { + $('#filterQueryText').addClass('error'); + textFilter = null; + } + } } var rowSum = 0, totalSum = 0, i = 0, q; diff --git a/js/server_status_variables.js b/js/server_status_variables.js index fa46f1fda9..47956f8464 100644 --- a/js/server_status_variables.js +++ b/js/server_status_variables.js @@ -48,7 +48,15 @@ AJAX.registerOnload('server_status_variables.js', function () { if (word.length === 0) { textFilter = null; } else { - textFilter = new RegExp("(^| )" + word, 'i'); + try { + textFilter = new RegExp("(^| )" + word, 'i'); + $(this).removeClass('error'); + } catch(e) { + if (e instanceof SyntaxError) { + $(this).addClass('error'); + textFilter = null; + } + } } text = word; filterVariables(); diff --git a/js/server_variables.js b/js/server_variables.js index 3b4dc11244..62f5ed7cf4 100644 --- a/js/server_variables.js +++ b/js/server_variables.js @@ -30,7 +30,15 @@ AJAX.registerOnload('server_variables.js', function () { $filterField.keyup(function () { var textFilter = null, val = $(this).val(); if (val.length !== 0) { - textFilter = new RegExp("(^| )" + val.replace(/_/g, ' '), 'i'); + try { + textFilter = new RegExp("(^| )" + val.replace(/_/g, ' '), 'i'); + $(this).removeClass('error'); + } catch(e) { + if (e instanceof SyntaxError) { + $(this).addClass('error'); + textFilter = null; + } + } } filterVariables(textFilter); });