From d83a671dea54eed2934400158b0153ce5d4a24c3 Mon Sep 17 00:00:00 2001 From: Xu Chun Guang Date: Wed, 3 Jul 2019 15:56:00 +0800 Subject: [PATCH] fix(net80211): Fix some net80211 bugs - fix(net80211): fix crash with fake beacon frame - fix(net80211): Have no check phy mode configured by user when connect AP - fix(net80211): Use random seqno when sending auth packet to AP --- VERSION | 4 ++-- lib/libmain.a | Bin 256984 -> 256984 bytes lib/libnet80211.a | Bin 345322 -> 345970 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 43880ecd..ce160d54 100755 --- a/VERSION +++ b/VERSION @@ -2,8 +2,8 @@ gwen: at : 361874e crypto : 7df3439 espnow : 7df3439 - main : 361874e - net80211 : fce080e + main : 771505d + net80211 : 771505d pp : ec884ab smartconfig : 7df3439 ssl : 7df3439 diff --git a/lib/libmain.a b/lib/libmain.a index 3cfe01c6b02bcfc900ff1288c16c3eb35e9102ba..3d3e16f2a34afaf7897cfcc286c322759daf6334 100755 GIT binary patch delta 346 zcmca{o&Uyl{t43TMusK^Muz4amA1;l*qiUkz7gTiQBW{eFfuT-R4_EPGPIa{)2NW$ z+}zOAz%*rZps`aeO!f3Q6-M#R8#magql)m}xTFggxwnu}eEVNk#waS`5XM6eFrmr!WW~2ipvuKq-kYu delta 346 zcmca{o&Uyl{t43ThUSJwmWGBKmA1;l*qiUkz7gTiQ!uhnFfuT-R4_ENGB%rh)2NW$ z*v!zv+$42#ps`aeO!f3Q6-M#R8#magql)m}xTFggxwnu}eEVNk#waS`5XM6eFrmr!WW~2ipvuK1lMKg diff --git a/lib/libnet80211.a b/lib/libnet80211.a index bfcbeabc1fea060840e94ef036c6ee5c3c258476..0464bcffe1e4a9948092c11b8f8a7e4bfb1525ef 100644 GIT binary patch delta 16606 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