From 034dbc07e3068c482e654b6a1a8fcbe4b01c44f3 Mon Sep 17 00:00:00 2001 From: Pierre de La Morinerie Date: Tue, 6 Feb 2018 10:57:34 +0530 Subject: handle RateLimiter initialization errors (#8199) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, an error occuring in NewRateLimiter would return a nil reference – which would be de-referenced just after, making the server crash. --- app/server.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'app/server.go') diff --git a/app/server.go b/app/server.go index 2a94bf2c7..1659908b6 100644 --- a/app/server.go +++ b/app/server.go @@ -124,9 +124,14 @@ func (a *App) StartServer() { if *a.Config().RateLimitSettings.Enable { l4g.Info(utils.T("api.server.start_server.rate.info")) - a.Srv.RateLimiter = NewRateLimiter(&a.Config().RateLimitSettings) + rateLimiter, err := NewRateLimiter(&a.Config().RateLimitSettings) + if err != nil { + l4g.Critical(err.Error()) + return + } - handler = a.Srv.RateLimiter.RateLimitHandler(handler) + a.Srv.RateLimiter = rateLimiter + handler = rateLimiter.RateLimitHandler(handler) } a.Srv.Server = &http.Server{ -- cgit v1.2.3-1-g7c22