diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 0abdb24317469bb78a9f40cfe70704158d2511d3..583c6c5ce469381276498dee8ae6cef5c73a77d2 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -239,7 +239,7 @@ int main(int argc, char *argv[])
 	slurmctld_lock_t config_write_lock = {
 		WRITE_LOCK, WRITE_LOCK, WRITE_LOCK, WRITE_LOCK };
 	assoc_init_args_t assoc_init_arg;
-	pthread_t assoc_cache_thread;
+	pthread_t assoc_cache_thread = (pthread_t) 0;
 	slurm_trigger_callbacks_t callbacks;
 	char *dir_name;
 
@@ -911,6 +911,8 @@ static void *_slurmctld_rpc_mgr(void *no_data)
 	/* initialize ports for RPCs */
 	lock_slurmctld(config_read_lock);
 	nports = slurmctld_conf.slurmctld_port_count;
+	if (nports == 0)
+		fatal("slurmctld port count is zero");
 	sockfd = xmalloc(sizeof(slurm_fd_t) * nports);
 	for (i=0; i<nports; i++) {
 		sockfd[i] = slurm_init_msg_engine_addrname_port(