Fix for RF OFF during T3TonDH NCI_DATA_MSG handling
Added null check for callback pointer
diff --git a/src/nfa/ce/nfa_ce_act.c b/src/nfa/ce/nfa_ce_act.c
index e1803bd..a487629 100644
--- a/src/nfa/ce/nfa_ce_act.c
+++ b/src/nfa/ce/nfa_ce_act.c
@@ -1212,7 +1212,8 @@
) &&
(i == p_cb->idx_cur_active)) {
conn_evt.deactivated.type = deact_type;
- (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
+ if (p_cb->p_active_conn_cback)
+ (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
} else if ((p_cb->activation_params.protocol == NFA_PROTOCOL_ISO_DEP) &&
(p_cb->listen_info[i].protocol_mask &
NFA_PROTOCOL_MASK_ISO_DEP)) {
@@ -1221,12 +1222,14 @@
NFA_CE_LISTEN_INFO_T4T_ACTIVATE_PND)) {
if (i == NFA_CE_LISTEN_INFO_IDX_NDEF) {
conn_evt.deactivated.type = deact_type;
- (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
+ if (p_cb->p_active_conn_cback)
+ (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
} else {
conn_evt.ce_deactivated.handle =
NFA_HANDLE_GROUP_CE | ((tNFA_HANDLE)i);
conn_evt.ce_deactivated.type = deact_type;
- (*p_cb->p_active_conn_cback)(NFA_CE_DEACTIVATED_EVT, &conn_evt);
+ if (p_cb->p_active_conn_cback)
+ (*p_cb->p_active_conn_cback)(NFA_CE_DEACTIVATED_EVT, &conn_evt);
}
}
} else if ((p_cb->activation_params.protocol == NFA_PROTOCOL_T3T) &&
@@ -1238,12 +1241,14 @@
#endif
if (i == NFA_CE_LISTEN_INFO_IDX_NDEF) {
conn_evt.deactivated.type = deact_type;
- (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
+ if (p_cb->p_active_conn_cback)
+ (*p_cb->p_active_conn_cback)(NFA_DEACTIVATED_EVT, &conn_evt);
} else {
conn_evt.ce_deactivated.handle =
NFA_HANDLE_GROUP_CE | ((tNFA_HANDLE)i);
conn_evt.ce_deactivated.type = deact_type;
- (*p_cb->p_active_conn_cback)(NFA_CE_DEACTIVATED_EVT, &conn_evt);
+ if (p_cb->p_active_conn_cback)
+ (*p_cb->p_active_conn_cback)(NFA_CE_DEACTIVATED_EVT, &conn_evt);
}
#if (NXP_EXTNS == TRUE)
}