diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrImpl.c b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrImpl.c index 4c5460b65c65..ff0f2f7797a5 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrImpl.c +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrImpl.c @@ -1489,8 +1489,26 @@ WifiMgrOnTimerTick ( } Nic = (WIFI_MGR_DEVICE_DATA *)Context; + if (Nic->ConnectPendingNetwork == NULL) { + DEBUG ((DEBUG_INFO, "[WiFi Connection Manager] No profile for connection, no scan triggered!\n")); + gBS->CloseEvent (Event); + return; + } + + if (StrLen (Nic->ConnectPendingNetwork->SSId) < SSID_MIN_LEN) { + DEBUG ((DEBUG_INFO, "[WiFi Connection Manager] Invalid SSID length for connection, no scan triggered!\n")); + gBS->CloseEvent (Event); + return; + } + NET_CHECK_SIGNATURE (Nic, WIFI_MGR_DEVICE_DATA_SIGNATURE); + if ((Nic->ConnectState == WifiMgrConnectedToAp) || (Nic->ConnectState == WifiMgrConnectingToAp)) { + DEBUG ((DEBUG_INFO, "[WiFi Connection Manager] Already connecting to AP, no scan triggered!\n")); + gBS->CloseEvent (Event); + return; + } + Status = WifiMgrGetLinkState (Nic, &LinkState); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_INFO, "[WiFi Connection Manager] Error: Failed to get link state!\n"));