summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Brand <tom@trellis.ch>2019-02-20 15:18:00 +0100
committerThomas Brand <tom@trellis.ch>2019-02-20 15:18:00 +0100
commitd4ef6800b4fe9ee61d0b9a1b76af1292023a40e7 (patch)
tree59d0a8a059e8f1a753d4c5592ca22e5c5e8cfaec
parent8c57a9e808f4f21ee262bd8ef24d4a246ce8a0f9 (diff)
downloadjack2-d4ef6800b4fe9ee61d0b9a1b76af1292023a40e7.tar.gz
Check return value of regcomp()
Only REG_EXTENDED regular expressions are understood. Eg. foo_{1|2} is NOT understood. This commit solves segfault when using invalid regular expressions. See https://github.com/jackaudio/jack2/issues/433
-rw-r--r--common/JackGraphManager.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/common/JackGraphManager.cpp b/common/JackGraphManager.cpp
index 10f10df5..4cdd9990 100644
--- a/common/JackGraphManager.cpp
+++ b/common/JackGraphManager.cpp
@@ -811,10 +811,18 @@ void JackGraphManager::GetPortsAux(const char** matching_ports, const char* port
regex_t port_regex, type_regex;
if (port_name_pattern && port_name_pattern[0]) {
- regcomp(&port_regex, port_name_pattern, REG_EXTENDED | REG_NOSUB);
+ if(regcomp(&port_regex, port_name_pattern, REG_EXTENDED | REG_NOSUB)!=0)
+ {
+ jack_log("JackGraphManager::GetPortsAux could not compile regex for port_name_pattern '%s'", port_name_pattern);
+ return;
+ }
}
if (type_name_pattern && type_name_pattern[0]) {
- regcomp(&type_regex, type_name_pattern, REG_EXTENDED | REG_NOSUB);
+ if(regcomp(&type_regex, type_name_pattern, REG_EXTENDED | REG_NOSUB)!=0)
+ {
+ jack_log("JackGraphManager::GetPortsAux could not compile regex for type_name_pattern '%s'", type_name_pattern);
+ return;
+ }
}
// Cleanup port array