From 5b42bb58f6898b57fcde6995a4273cf726e0af63 Mon Sep 17 00:00:00 2001 From: Marcus Efraimsson Date: Wed, 13 Nov 2019 13:33:03 +0100 Subject: [PATCH] Telegram: Check error before adding defer close of image (#20331) Properly handles file opening error and returns before deferring close of file. Fixes #20156 --- pkg/services/alerting/notifiers/telegram.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/services/alerting/notifiers/telegram.go b/pkg/services/alerting/notifiers/telegram.go index 74f1afbeb75..207b88594fd 100644 --- a/pkg/services/alerting/notifiers/telegram.go +++ b/pkg/services/alerting/notifiers/telegram.go @@ -137,6 +137,10 @@ func (tn *TelegramNotifier) buildMessageInlineImage(evalContext *alerting.EvalCo var err error imageFile, err = os.Open(evalContext.ImageOnDiskPath) + if err != nil { + return nil, err + } + defer func() { err := imageFile.Close() if err != nil { @@ -144,10 +148,6 @@ func (tn *TelegramNotifier) buildMessageInlineImage(evalContext *alerting.EvalCo } }() - if err != nil { - return nil, err - } - ruleURL, err := evalContext.GetRuleURL() if err != nil { return nil, err