Skip to content

Commit 3ff32b2

Browse files
fessehaevej-ororke
authored andcommitted
make sure test event trigger delegate is not null before using it (project-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
1 parent 80ecb27 commit 3ff32b2

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

examples/smoke-co-alarm-app/silabs/src/AppTask.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ CHIP_ERROR AppTask::Init()
7878
}
7979

8080
// Register Smoke & Co Test Event Trigger
81-
Server::GetInstance().GetTestEventTriggerDelegate()->AddHandler(&AlarmMgr());
81+
if (Server::GetInstance().GetTestEventTriggerDelegate() != nullptr)
82+
{
83+
Server::GetInstance().GetTestEventTriggerDelegate()->AddHandler(&AlarmMgr());
84+
}
8285

8386
sAlarmLED.Init(LIGHT_LED);
8487
sAlarmLED.Set(false);

src/app/server/Server.cpp

+12-2
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,10 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams)
182182
mReportScheduler = initParams.reportScheduler;
183183

184184
mTestEventTriggerDelegate = initParams.testEventTriggerDelegate;
185+
if (mTestEventTriggerDelegate == nullptr)
186+
{
187+
ChipLogProgress(AppServer, "WARNING: mTestEventTriggerDelegate is null");
188+
}
185189

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

361365
// Register Test Event Trigger Handler
362-
mTestEventTriggerDelegate->AddHandler(&mICDManager);
366+
if (mTestEventTriggerDelegate != nullptr)
367+
{
368+
mTestEventTriggerDelegate->AddHandler(&mICDManager);
369+
}
363370

364371
#endif // CHIP_CONFIG_ENABLE_ICD_SERVER
365372

@@ -612,7 +619,10 @@ void Server::Shutdown()
612619
Credentials::SetGroupDataProvider(nullptr);
613620
#if CHIP_CONFIG_ENABLE_ICD_SERVER
614621
// Remove Test Event Trigger Handler
615-
mTestEventTriggerDelegate->RemoveHandler(&mICDManager);
622+
if (mTestEventTriggerDelegate != nullptr)
623+
{
624+
mTestEventTriggerDelegate->RemoveHandler(&mICDManager);
625+
}
616626
mICDManager.Shutdown();
617627
#endif // CHIP_CONFIG_ENABLE_ICD_SERVER
618628
mAttributePersister.Shutdown();

0 commit comments

Comments
 (0)