From ad6b33319d2fef489aaabbef7bd5673ef0fc427b Mon Sep 17 00:00:00 2001
From: Filip Matusiak <filip.matusiak@iopsys.eu>
Date: Wed, 17 Apr 2024 10:46:32 +0200
Subject: [PATCH] Don't add STA to the stalist until data element is allocated

Signed-off-by: Filip Matusiak <filip.matusiak@iopsys.eu>
---
 src/cntlr.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/cntlr.c b/src/cntlr.c
index 81712db7..b6477c44 100644
--- a/src/cntlr.c
+++ b/src/cntlr.c
@@ -1086,21 +1086,21 @@ struct sta *cntlr_add_sta(struct controller *c, uint8_t *macaddr,
 	if (!s)
 		return NULL;
 
-	INIT_LIST_HEAD(&s->umetriclist);
-	list_add(&s->list, &c->stalist);
-	timer_init(&s->bcn_metrics_timer, cntlr_bcn_metrics_parse);
-	timer_init(&s->btm_req_timer, cntlr_btm_req_timer_cb);
-
 	s->de_sta = cntlr_wifi_alloc_sta(c, macaddr);
 	if (!s->de_sta) {
 		free(s);
 		return NULL;
 	}
 
+	INIT_LIST_HEAD(&s->umetriclist);
+	list_add(&s->list, &c->stalist);
 	allmac_insert(&c->mac_table, macaddr,
 		is_bsta ? MAC_ENTRY_BSTA : MAC_ENTRY_STA,
 		(void *)s);
 
+	timer_init(&s->bcn_metrics_timer, cntlr_bcn_metrics_parse);
+	timer_init(&s->btm_req_timer, cntlr_btm_req_timer_cb);
+
 	cntlr_init_sta_steer_counters(s);
 
 	return s;
-- 
GitLab