Skip to content

Commit

Permalink
[Ameba] Fix incorrect SSID problem during AddOrUpdateNetwork (#21777)
Browse files Browse the repository at this point in the history
* [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
  • Loading branch information
pankore authored and pull[bot] committed Feb 5, 2024
1 parent 17df3e5 commit 8384372
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/platform/Ameba/NetworkCommissioningWiFiDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<decltype(mStagingNetwork.credentialsLen)>(credentials.size());

Expand All @@ -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;
}
Expand Down

0 comments on commit 8384372

Please sign in to comment.