From 8384372c72a243afebb15d4020f3126524d35ed1 Mon Sep 17 00:00:00 2001 From: pankore <86098180+pankore@users.noreply.github.com> Date: Tue, 16 Aug 2022 04:35:28 +0800 Subject: [PATCH] [Ameba] Fix incorrect SSID problem during AddOrUpdateNetwork (#21777) * [NetworkComissioning] memset mStagingNetwork to 0 first before doing memcpy - Adding a new SSID with a shorter len than current SSID will result in partial erase of the current SSID * [NetworkCommissioning] Change memset to assigning mStagingNetwork with empty struct to fix compile error - Clear mStagingNetwork when RemoveNetwork instead of just making len 0 * [Restyle] Fix styling --- src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp b/src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp index 5ad632300b4312..2edc96aa20a77a 100644 --- a/src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp +++ b/src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp @@ -92,6 +92,7 @@ Status AmebaWiFiDriver::AddOrUpdateNetwork(ByteSpan ssid, ByteSpan credentials, VerifyOrReturnError(credentials.size() <= sizeof(mStagingNetwork.credentials), Status::kOutOfRange); VerifyOrReturnError(ssid.size() <= sizeof(mStagingNetwork.ssid), Status::kOutOfRange); + mStagingNetwork = {}; memcpy(mStagingNetwork.credentials, credentials.data(), credentials.size()); mStagingNetwork.credentialsLen = static_cast(credentials.size()); @@ -108,6 +109,7 @@ Status AmebaWiFiDriver::RemoveNetwork(ByteSpan networkId, MutableCharSpan & outD VerifyOrReturnError(NetworkMatch(mStagingNetwork, networkId), Status::kNetworkIDNotFound); // Use empty ssid for representing invalid network + mStagingNetwork = {}; mStagingNetwork.ssidLen = 0; return Status::kSuccess; }