From 3504394d0d3c5b8662b1da32a5a0396623d64d76 Mon Sep 17 00:00:00 2001
From: mildis <me@mildis.org>
Date: Sun, 23 Sep 2018 18:26:46 +0200
Subject: [PATCH] BUG/MINOR: checks: queues null-deref

queues can be null if calloc() failed.
Check queues before working on it.
---
 src/checks.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/checks.c b/src/checks.c
index 52c762b5..6985256a 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -3280,18 +3280,20 @@ int init_email_alert(struct mailers *mls, struct proxy *p, char **err)
 	return 0;
 
   error:
-	for (i = 0; i < mls->count; i++) {
-		struct email_alertq *q     = &queues[i];
-		struct check        *check = &q->check;
-
-		if (check->task) {
-			task_delete(check->task);
-			task_free(check->task);
-			check->task = NULL;
+	if (queues) {
+		for (i = 0; i < mls->count; i++) {
+			struct email_alertq *q     = &queues[i];
+			struct check        *check = &q->check;
+
+			if (check->task) {
+				task_delete(check->task);
+				task_free(check->task);
+				check->task = NULL;
+			}
+			free_check(check);
 		}
-		free_check(check);
+		free(queues);
 	}
-	free(queues);
 	return 1;
 }
 
-- 
2.19.0

