Skip to content

Commit 4601714

Browse files
authored
Add checks for mOTInst in GenericThreadStackManagerImpl_OpenThread (project-chip#32482)
* Add checks for mOTInst in GenericThreadStackManagerImpl_OpenThread * review changes
1 parent b278978 commit 4601714

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp

+26
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_ProcessThreadActivity
149149
template <class ImplClass>
150150
bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_HaveRouteToAddress(const Inet::IPAddress & destAddr)
151151
{
152+
VerifyOrReturnValue(mOTInst, false);
152153
bool res = false;
153154

154155
// Lock OpenThread
@@ -233,6 +234,7 @@ void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnPlatformEvent(const
233234
template <class ImplClass>
234235
bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_IsThreadEnabled(void)
235236
{
237+
VerifyOrReturnValue(mOTInst, false);
236238
otDeviceRole curRole;
237239

238240
Impl()->LockThreadStack();
@@ -245,6 +247,7 @@ bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_IsThreadEnabled(void)
245247
template <class ImplClass>
246248
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadEnabled(bool val)
247249
{
250+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
248251
otError otErr = OT_ERROR_NONE;
249252

250253
Impl()->LockThreadStack();
@@ -279,6 +282,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadEnable
279282
template <class ImplClass>
280283
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadProvision(ByteSpan netInfo)
281284
{
285+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
282286
otError otErr = OT_ERROR_FAILED;
283287
otOperationalDatasetTlvs tlvs;
284288

@@ -305,6 +309,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadProvis
305309
template <class ImplClass>
306310
bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_IsThreadProvisioned(void)
307311
{
312+
VerifyOrReturnValue(mOTInst, false);
308313
bool provisioned;
309314

310315
Impl()->LockThreadStack();
@@ -317,6 +322,7 @@ bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_IsThreadProvisioned(v
317322
template <class ImplClass>
318323
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetThreadProvision(Thread::OperationalDataset & dataset)
319324
{
325+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
320326
VerifyOrReturnError(Impl()->IsThreadProvisioned(), CHIP_ERROR_INCORRECT_STATE);
321327
otOperationalDatasetTlvs datasetTlv;
322328

@@ -336,6 +342,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetThreadProvis
336342
template <class ImplClass>
337343
bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_IsThreadAttached(void)
338344
{
345+
VerifyOrReturnValue(mOTInst, false);
339346
otDeviceRole curRole;
340347

341348
Impl()->LockThreadStack();
@@ -380,6 +387,7 @@ template <class ImplClass>
380387
CHIP_ERROR
381388
GenericThreadStackManagerImpl_OpenThread<ImplClass>::_StartThreadScan(NetworkCommissioning::ThreadDriver::ScanCallback * callback)
382389
{
390+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
383391
CHIP_ERROR error = CHIP_NO_ERROR;
384392
#if CHIP_CONFIG_ENABLE_ICD_SERVER
385393
otLinkModeConfig linkMode;
@@ -488,6 +496,7 @@ void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnNetworkScanFinished
488496
template <class ImplClass>
489497
ConnectivityManager::ThreadDeviceType GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetThreadDeviceType(void)
490498
{
499+
VerifyOrReturnValue(mOTInst, ConnectivityManager::kThreadDeviceType_NotSupported);
491500
ConnectivityManager::ThreadDeviceType deviceType;
492501

493502
Impl()->LockThreadStack();
@@ -524,6 +533,7 @@ template <class ImplClass>
524533
CHIP_ERROR
525534
GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadDeviceType(ConnectivityManager::ThreadDeviceType deviceType)
526535
{
536+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
527537
CHIP_ERROR err = CHIP_NO_ERROR;
528538
otLinkModeConfig linkMode;
529539

@@ -612,6 +622,7 @@ GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetThreadDeviceType(Connec
612622
template <class ImplClass>
613623
bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_HaveMeshConnectivity(void)
614624
{
625+
VerifyOrReturnValue(mOTInst, false);
615626
bool res;
616627
otDeviceRole curRole;
617628

@@ -660,6 +671,7 @@ bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::_HaveMeshConnectivity(
660671
template <class ImplClass>
661672
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThreadStatsCounters(void)
662673
{
674+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
663675
CHIP_ERROR err = CHIP_NO_ERROR;
664676
otError otErr;
665677
otOperationalDataset activeDataset;
@@ -754,6 +766,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThread
754766
template <class ImplClass>
755767
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThreadTopologyMinimal(void)
756768
{
769+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
757770
CHIP_ERROR err = CHIP_NO_ERROR;
758771

759772
#if CHIP_PROGRESS_LOGGING
@@ -822,6 +835,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThread
822835
template <class ImplClass>
823836
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThreadTopologyFull()
824837
{
838+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
825839
CHIP_ERROR err = CHIP_NO_ERROR;
826840

827841
#if CHIP_PROGRESS_LOGGING
@@ -991,6 +1005,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetAndLogThread
9911005
template <class ImplClass>
9921006
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetPrimary802154MACAddress(uint8_t * buf)
9931007
{
1008+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
9941009
const otExtAddress * extendedAddr = otLinkGetExtendedAddress(mOTInst);
9951010
memcpy(buf, extendedAddr, sizeof(otExtAddress));
9961011
return CHIP_NO_ERROR;
@@ -999,6 +1014,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetPrimary80215
9991014
template <class ImplClass>
10001015
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetExternalIPv6Address(chip::Inet::IPAddress & addr)
10011016
{
1017+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
10021018
const otNetifAddress * otAddresses = otIp6GetUnicastAddresses(mOTInst);
10031019

10041020
// Look only for the global unicast addresses, not internally assigned by Thread.
@@ -1034,6 +1050,7 @@ void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_ResetThreadNetworkDia
10341050
template <class ImplClass>
10351051
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_GetPollPeriod(uint32_t & buf)
10361052
{
1053+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
10371054
Impl()->LockThreadStack();
10381055
buf = otLinkGetPollPeriod(mOTInst);
10391056
Impl()->UnlockThreadStack();
@@ -1121,6 +1138,7 @@ bool GenericThreadStackManagerImpl_OpenThread<ImplClass>::IsThreadInterfaceUpNoL
11211138
template <class ImplClass>
11221139
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetPollingInterval(System::Clock::Milliseconds32 pollingInterval)
11231140
{
1141+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
11241142
CHIP_ERROR err = CHIP_NO_ERROR;
11251143
Impl()->LockThreadStack();
11261144

@@ -1173,6 +1191,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetPollingInter
11731191
template <class ImplClass>
11741192
void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_ErasePersistentInfo(void)
11751193
{
1194+
VerifyOrReturn(mOTInst);
11761195
ChipLogProgress(DeviceLayer, "Erasing Thread persistent info...");
11771196
Impl()->LockThreadStack();
11781197
otThreadSetEnabled(mOTInst, false);
@@ -1205,6 +1224,7 @@ void GenericThreadStackManagerImpl_OpenThread<ImplClass>::OnJoinerComplete(otErr
12051224
template <class ImplClass>
12061225
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_JoinerStart(void)
12071226
{
1227+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
12081228
CHIP_ERROR error = CHIP_NO_ERROR;
12091229

12101230
Impl()->LockThreadStack();
@@ -1254,6 +1274,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_JoinerStart(voi
12541274
template <class ImplClass>
12551275
void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_UpdateNetworkStatus()
12561276
{
1277+
VerifyOrReturn(mOTInst);
12571278
// Thread is not enabled, then we are not trying to connect to the network.
12581279
VerifyOrReturn(ThreadStackMgrImpl().IsThreadEnabled() && mpStatusChangeCallback != nullptr);
12591280

@@ -1636,6 +1657,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_RemoveInvalidSr
16361657
template <class ImplClass>
16371658
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_ClearAllSrpHostAndServices()
16381659
{
1660+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
16391661
CHIP_ERROR error = CHIP_NO_ERROR;
16401662
Impl()->LockThreadStack();
16411663
if (!mIsSrpClearAllRequested)
@@ -1684,6 +1706,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_SetupSrpHost(co
16841706
template <class ImplClass>
16851707
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_ClearSrpHost(const char * aHostName)
16861708
{
1709+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
16871710
CHIP_ERROR error = CHIP_NO_ERROR;
16881711

16891712
Impl()->LockThreadStack();
@@ -1798,6 +1821,7 @@ CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::FromOtDnsRespons
17981821
template <class ImplClass>
17991822
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::ResolveAddress(intptr_t context, otDnsAddressCallback callback)
18001823
{
1824+
VerifyOrReturnError(ThreadStackMgrImpl().OTInstance(), CHIP_ERROR_INCORRECT_STATE);
18011825
DnsResult * dnsResult = reinterpret_cast<DnsResult *>(context);
18021826

18031827
ThreadStackMgrImpl().LockThreadStack();
@@ -1952,6 +1976,7 @@ template <class ImplClass>
19521976
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_DnsBrowse(const char * aServiceName, DnsBrowseCallback aCallback,
19531977
void * aContext)
19541978
{
1979+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
19551980
CHIP_ERROR error = CHIP_NO_ERROR;
19561981

19571982
Impl()->LockThreadStack();
@@ -2062,6 +2087,7 @@ template <class ImplClass>
20622087
CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_DnsResolve(const char * aServiceName, const char * aInstanceName,
20632088
DnsResolveCallback aCallback, void * aContext)
20642089
{
2090+
VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
20652091
CHIP_ERROR error = CHIP_NO_ERROR;
20662092

20672093
Impl()->LockThreadStack();

0 commit comments

Comments
 (0)