mesh: Add missing action to cancel timer
authorPeter Oh <poh@qca.qualcomm.com>
Fri, 29 Apr 2016 22:04:41 +0000 (15:04 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 13 May 2016 16:57:15 +0000 (19:57 +0300)
IEEE Std 802.11-2012 Table 13-2, MPM finite state machine requires to
clear retryTimer when CNF_ACPT event occurs in OPN_SNT state which is
missing, so add it to comply with the standard.

This was found while debugging an MTK issue and this commit fixes a
potential issue that mesh sends invalid event (PLINK_OPEN) which will
lead another invalid timer register such as MeshConfirm Timer. This
behaviour might lead to undefined mesh state.

Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
wpa_supplicant/mesh_mpm.c

index c014eaf..6292e62 100644 (file)
@@ -874,6 +874,7 @@ static void mesh_mpm_fsm(struct wpa_supplicant *wpa_s, struct sta_info *sta,
                        break;
                case CNF_ACPT:
                        wpa_mesh_set_plink_state(wpa_s, sta, PLINK_CNF_RCVD);
+                       eloop_cancel_timeout(plink_timer, wpa_s, sta);
                        eloop_register_timeout(
                                conf->dot11MeshConfirmTimeout / 1000,
                                (conf->dot11MeshConfirmTimeout % 1000) * 1000,