[gnome-session/benzea/subpattern-nocapture: 8/8] util: Disable capturing of subpatterns
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-session/benzea/subpattern-nocapture: 8/8] util: Disable capturing of subpatterns
- Date: Thu, 14 Jan 2021 13:54:09 +0000 (UTC)
commit 3b57d117f78ad06e56974b9512a394fd9ef13a07
Author: Benjamin Berg <bberg redhat com>
Date: Sun Jan 10 19:26:07 2021 +0100
util: Disable capturing of subpatterns
It seems that the pattern we use will create a subpattern match for
every character of the value. This appears to then result in a stack
overflow when matching very long values.
It might be an idea to limit the overall length of an environment
variable that is uploaded. But, this should fix the issue of crashes.
Fixes: #42
gnome-session/gsm-util.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gnome-session/gsm-util.c b/gnome-session/gsm-util.c
index 070fa75bc..cdf67610b 100644
--- a/gnome-session/gsm-util.c
+++ b/gnome-session/gsm-util.c
@@ -550,7 +550,7 @@ gsm_util_export_activation_environment (GError **error)
return FALSE;
}
- value_regex = g_regex_new ("^([ \t\n]|[^[:cntrl:]])*$", G_REGEX_OPTIMIZE, 0, error);
+ value_regex = g_regex_new ("^(?:[ \t\n]|[^[:cntrl:]])*$", G_REGEX_OPTIMIZE, 0, error);
if (value_regex == NULL) {
return FALSE;
@@ -630,7 +630,7 @@ gsm_util_export_user_environment (GError **error)
return FALSE;
}
- regex = g_regex_new ("^[a-zA-Z_][a-zA-Z0-9_]*=([ \t\n]|[^[:cntrl:]])*$", G_REGEX_OPTIMIZE, 0, error);
+ regex = g_regex_new ("^[a-zA-Z_][a-zA-Z0-9_]*=(?:[ \t\n]|[^[:cntrl:]])*$", G_REGEX_OPTIMIZE, 0,
error);
if (regex == NULL) {
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]