From 96f5bc1f7e354b283dfb6eb675ffab0aeaf6fde4 Mon Sep 17 00:00:00 2001 From: Bohdan Horbeshko Date: Wed, 5 May 2021 22:08:06 +0300 Subject: [PATCH] Appservice config: handle regexp parsing errors Signed-off-by: diamondburned Signed-off-by: Bohdan Horbeshko --- setup/config/config_appservice.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/setup/config/config_appservice.go b/setup/config/config_appservice.go index f885e5dd2..9bd8a1b51 100644 --- a/setup/config/config_appservice.go +++ b/setup/config/config_appservice.go @@ -224,7 +224,7 @@ func setupRegexps(asAPI *AppServiceAPI, derived *Derived) (err error) { } if err = compileNamespaceRegexes(namespaceSlice); err != nil { - return err + return fmt.Errorf("invalid regex in appservice %q, namespace %q: %w", appservice.ID, key, err) } } } @@ -276,9 +276,12 @@ func appendExclusiveNamespaceRegexs( func compileNamespaceRegexes(namespaces []ApplicationServiceNamespace) (err error) { for index, namespace := range namespaces { // Compile this regex into a Regexp object for later use - if namespaces[index].RegexpObject, err = regexp.Compile(namespace.Regex); err != nil { - return err + r, err := regexp.Compile(namespace.Regex) + if err != nil { + return fmt.Errorf("regex at namespace %d: %w", index, err) } + + namespaces[index].RegexpObject = r } return nil