From 72022106efe793d55d6c234fa059c5fdc2a2d105 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Wed, 4 Jan 2023 16:30:29 -0800
Subject: [PATCH] Fix crash in mqtt_errormsg() when MQTT is disabled

Should fix the segfault reported by NeoArata_ in #synchronet

Also include singular/plural error/s in server status messages.
---
 src/sbbs3/mqtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/mqtt.c b/src/sbbs3/mqtt.c
index 60b6477649..df4c5343ff 100644
--- a/src/sbbs3/mqtt.c
+++ b/src/sbbs3/mqtt.c
@@ -544,7 +544,7 @@ int mqtt_server_state(struct mqtt* mqtt, enum server_state state)
 		char tmp[256];
 		char errors[64] = "";
 		if(mqtt->error_count)
-			snprintf(errors, sizeof(errors), "%lu errors", mqtt->error_count);
+			snprintf(errors, sizeof(errors), "%lu error%s", mqtt->error_count, mqtt->error_count > 1 ? "s" : "");
 		char served[64] = "";
 		if(mqtt->served)
 			snprintf(served, sizeof(served), "%lu served", mqtt->served);
@@ -567,7 +567,7 @@ int mqtt_server_state(struct mqtt* mqtt, enum server_state state)
 
 int mqtt_errormsg(struct mqtt* mqtt, int level, const char* msg)
 {
-	if(mqtt == NULL)
+	if(mqtt == NULL || mqtt->cfg == NULL)
 		return MQTT_FAILURE;
 	++mqtt->error_count;
 	mqtt_pub_uintval(mqtt, TOPIC_SERVER, "error_count", mqtt->error_count);
-- 
GitLab