Skip to content

Commit

Permalink
make sure test event trigger delegate is not null before using it (pr…
Browse files Browse the repository at this point in the history
…oject-chip#33949)

* - added null check to code which was leading to a fatal error if an app is
  built without setting test event trigger delegate mTestEventTriggerDelegate

* Log warning message when mTestEventTriggerDelegate is null
  • Loading branch information
fessehaeve authored Jul 16, 2024
1 parent 9a8e6f9 commit 522668f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
5 changes: 4 additions & 1 deletion examples/smoke-co-alarm-app/silabs/src/AppTask.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@ CHIP_ERROR AppTask::Init()
}

// Register Smoke & Co Test Event Trigger
Server::GetInstance().GetTestEventTriggerDelegate()->AddHandler(&AlarmMgr());
if (Server::GetInstance().GetTestEventTriggerDelegate() != nullptr)
{
Server::GetInstance().GetTestEventTriggerDelegate()->AddHandler(&AlarmMgr());
}

sAlarmLED.Init(LIGHT_LED);
sAlarmLED.Set(false);
Expand Down
14 changes: 12 additions & 2 deletions src/app/server/Server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams)
mReportScheduler = initParams.reportScheduler;

mTestEventTriggerDelegate = initParams.testEventTriggerDelegate;
if (mTestEventTriggerDelegate == nullptr)
{
ChipLogProgress(AppServer, "WARNING: mTestEventTriggerDelegate is null");
}

deviceInfoprovider = DeviceLayer::GetDeviceInfoProvider();
if (deviceInfoprovider)
Expand Down Expand Up @@ -359,7 +363,10 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams)
chip::app::InteractionModelEngine::GetInstance());

// Register Test Event Trigger Handler
mTestEventTriggerDelegate->AddHandler(&mICDManager);
if (mTestEventTriggerDelegate != nullptr)
{
mTestEventTriggerDelegate->AddHandler(&mICDManager);
}

#endif // CHIP_CONFIG_ENABLE_ICD_SERVER

Expand Down Expand Up @@ -612,7 +619,10 @@ void Server::Shutdown()
Credentials::SetGroupDataProvider(nullptr);
#if CHIP_CONFIG_ENABLE_ICD_SERVER
// Remove Test Event Trigger Handler
mTestEventTriggerDelegate->RemoveHandler(&mICDManager);
if (mTestEventTriggerDelegate != nullptr)
{
mTestEventTriggerDelegate->RemoveHandler(&mICDManager);
}
mICDManager.Shutdown();
#endif // CHIP_CONFIG_ENABLE_ICD_SERVER
mAttributePersister.Shutdown();
Expand Down

0 comments on commit 522668f

Please sign in to comment.