From 52022489549ba1b12498ce5b4169455756fc430c Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 7 Oct 2025 14:48:09 +0200 Subject: [PATCH] Bug 40907: Prevent DT crash when searching with regex metachars We should remove the regex metacharacters from the string or JS code will raise an error and the query won't be generated, leading to the DT neverending loading problem. Test plan: Go to http://localhost:8081/cgi-bin/koha/catalogue/detail.pl?biblionumber=4 In the global "Search" of the items table, search using a regex metacharacters in order to form a broken regex (eg. '[') => Without this patch there is a JS error in the console "Uncaught SyntaxError: unterminated character class" and you get the "Processing" that never ends => With this patch applied the search succeeds. Signed-off-by: Mathieu --- koha-tmpl/intranet-tmpl/prog/js/datatables.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/datatables.js b/koha-tmpl/intranet-tmpl/prog/js/datatables.js index 3af04d2a16..fb8e6792a1 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ b/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -555,8 +555,14 @@ function _dt_default_ajax(params) { const search_value = value.length ? value : global_search; + + // Escape all regex metachars . * + ? ^ $ { } ( ) | [ ] \ const regex = new RegExp( - `^${search_value}`, + "^" + + search_value.replace( + /[.*+?^${}()|[\]\\]/g, + "\\$&" + ), "i" ); if ( -- 2.39.5