diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 711f8f784f1c3010d83ebb838fb8252671cd0f6c..e88fdf7dae2ea35872a9736367afe0600c2f23cd 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -2620,7 +2620,7 @@ static bool _verify_clustername(void)
 {
 	FILE *fp;
 	char *filename = NULL;
-	char name[512];
+	char name[512] = {0};
 	bool create_file = false;
 
 	xstrfmtcat(filename, "%s/clustername",
@@ -2628,7 +2628,10 @@ static bool _verify_clustername(void)
 
 	if ((fp = fopen(filename, "r"))) {
 		/* read value and compare */
-		fgets(name, sizeof(name), fp);
+		if (!fgets(name, sizeof(name), fp)) {
+			error("%s: reading cluster name from clustername file",
+			      __func__);
+		}
 		fclose(fp);
 		if (xstrcmp(name, slurmctld_conf.cluster_name)) {
 			fatal("CLUSTER NAME MISMATCH.\n"