diff --git a/src/cntlr_map.c b/src/cntlr_map.c
index 871ad800d9bd0f195888a6e9d8fe0d68136962fa..e8a4d12ff8925f3d60321fb253d41c105aae0eef 100644
--- a/src/cntlr_map.c
+++ b/src/cntlr_map.c
@@ -84,6 +84,9 @@ void cntrl_enqueue_assoc_events(struct controller *c, struct wifi_assoc_events *
         dbg("Inside %s\n", __func__);
         struct wifi_assoc_events *elem;
 
+	if (!event)
+		return;
+
         if (is_full_event_queue(c, CNTRL_ASSOC_EVENT)) {
                 dbg("assoc event queue full del front node\n");
                 c->sta_events.front_assoc_events = (c->sta_events.front_assoc_events + 1)
@@ -136,8 +139,8 @@ void cntrl_enqueue_disassoc_events(struct controller *c, struct wifi_disassoc_ev
 int handle_topology_notification(void *cntlr, struct cmdu_buff *cmdu)
 {
 	cntlr = (struct controller *)cntlr;
-        struct wifi_assoc_events assoc_ev;
-        struct wifi_disassoc_events disassoc_ev;
+        struct wifi_assoc_events assoc_ev = { 0 };
+        struct wifi_disassoc_events disassoc_ev = { 0 };
         struct tlv *tv[2][16];
 	struct cmdu_buff *ret = NULL ;