mka: Avoid memory leak in unexpected case in RECEIVE
It looks like it is possible for the RECEIVE state to leak memory where a previously allocated sm->lki is moved to sm->oki while sm->oki is pointing to not yet freed entry. It is not clear how this can be triggered, but it has come up in hwsim testing under heavy load. Free sm->oki if it is still set in RECEIVE before replacing it with sm->lki to avoid this memory leak. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
984d5b7e1f
commit
0be8b9238f
1 changed files with 4 additions and 0 deletions
|
@ -214,6 +214,10 @@ SM_STATE(CP, RECEIVE)
|
||||||
SM_ENTRY(CP, RECEIVE);
|
SM_ENTRY(CP, RECEIVE);
|
||||||
/* RECEIVE state machine not keep with Figure 12-2 in
|
/* RECEIVE state machine not keep with Figure 12-2 in
|
||||||
* IEEE Std 802.1X-2010 */
|
* IEEE Std 802.1X-2010 */
|
||||||
|
if (sm->oki) {
|
||||||
|
ieee802_1x_kay_delete_sas(sm->kay, sm->oki);
|
||||||
|
os_free(sm->oki);
|
||||||
|
}
|
||||||
sm->oki = sm->lki;
|
sm->oki = sm->lki;
|
||||||
sm->oan = sm->lan;
|
sm->oan = sm->lan;
|
||||||
sm->otx = sm->ltx;
|
sm->otx = sm->ltx;
|
||||||
|
|
Loading…
Reference in a new issue