[gnome-system-monitor] Fixed crash due to regex error (bgo#796168)
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor] Fixed crash due to regex error (bgo#796168)
- Date: Wed, 16 May 2018 18:21:55 +0000 (UTC)
commit 18bd98e263caa949ceb2a1991548ebf006834a41
Author: Robert Roth <robert roth off gmail com>
Date: Wed May 16 21:21:27 2018 +0300
Fixed crash due to regex error (bgo#796168)
src/proctable.cpp | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/src/proctable.cpp b/src/proctable.cpp
index 1fadc4d..c530484 100644
--- a/src/proctable.cpp
+++ b/src/proctable.cpp
@@ -214,6 +214,7 @@ iter_matches_search_key (GtkTreeModel *model, GtkTreeIter *iter, const gchar *se
gboolean found;
char *search_pattern;
char **keys;
+ Glib::RefPtr<Glib::Regex> regex;
gtk_tree_model_get (model, iter,
COL_NAME, &name,
@@ -226,8 +227,11 @@ iter_matches_search_key (GtkTreeModel *model, GtkTreeIter *iter, const gchar *se
keys = g_strsplit_set(search_text, " |", -1);
search_pattern = g_strjoinv ("|", keys);
-
- auto regex = Glib::Regex::create(search_pattern, Glib::REGEX_CASELESS);
+ try {
+ regex = Glib::Regex::create(search_pattern, Glib::REGEX_CASELESS);
+ } catch (const Glib::Error& ex) {
+ regex = Glib::Regex::create(Glib::Regex::escape_string(search_pattern), Glib::REGEX_CASELESS);
+ }
found = (name && regex->match(name)) || (user && regex->match(user))
|| (pids && regex->match(pids)) || (args && regex->match(args));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]